2

次のようにコマンドラインから実行される複雑なMongoDBスクリプトの組み合わせがあります。

$ mongo mydb config.js task.js

サーバー環境でシェルスクリプトを実行できず、上記のタスクをスケジュールする必要があるため、上記の.jsファイルを連結して、ノードスクリプトから実行できると考えました。したがって、私は以下に相当するものを探しています:

db.runMyCustomRawCommands(string commands)

どうすればこれを行うことができますか、または代替ソリューションは何でしょうか?

4

2 に答える 2

3

Node.jsネイティブMongoDBドライバーの元の作者であるChristianKvalheimを引用すると、次のようになります。

シェルは同期しており、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シェルスクリプトをドライバーのAPIの呼び出しとして表現する方法を理解するか、下位レベルのサーバーにアクセスする必要があります。

于 2012-10-25T18:53:38.093 に答える