通过Node.js驱动运行任意的MongoDB脚本

我有从命令行运行的复杂的MongoDB脚本的组合,如下所示:

$ mongo mydb config.js task.js 

由于我无法在我的服务器环境中运行shell脚本,并需要安排上述任务,我想我可以简单地连接上面的.js文件,然后从Node脚本运行它们。 因此我正在寻找一个等值的:

 db.runMyCustomRawCommands(string commands) 

我怎么能做到这一点,或者什么是替代解决scheme?

引用Node.js本地MongoDB驱动程序的原始作者Christian Kvalheim的话:

这是不可能的,因为shell是同步的,并且具有与node.js驱动程序不同的apis。 你将不得不重写脚本来为node.js工作。

问题是db.runMyCustomRawCommands不是一个原始命令。 驱动程序与较低级别的mongod服务器进行通信。 在控制台中运行的诸如db.abc命令实际上是简单的查询消息,其引用db.$cmd集合为db.$cmd.findOne({ abc: 1 })或类似的方式。

因此,您必须弄清楚如何将mongo shell脚本表示为对驱动程序API的调用或访问较低级别的服务器。