2

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

$ mongo mydb config.js task.js

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

db.runMyCustomRawCommands(string commands)

我该怎么做,或者什么是替代解决方案?

4

2 回答 2

3

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

这是不可能的,因为 shell 是同步的,并且具有与 node.js 驱动程序不同的 api。您必须重写脚本才能为 node.js 工作。

于 2012-10-27T15:46:03.180 回答
1

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

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

于 2012-10-25T18:53:38.093 回答