sql >> データベース >  >> NoSQL >> MongoDB

シェルスクリプトを介してmongoコマンドを実行する方法は? (私のものは動作しません)

    my_script.jsを作成します この1つのコマンドでファイル:

    db.testColl.insertOne( { a: "hello" } )
    

    スクリプトファイルを現在のディレクトリに配置します。


    1。 OSコマンドラインからJSスクリプトを実行する:

    OSプロンプトからこれを行います:

    > mongo localhost/testDB my_script.js
    

    上記のコマンドを実行すると、次のような出力が表示されます(MongoDBのバージョンとOS(この場合はWindows)によって異なります):

    MongoDB shell version v4.2.3
    connecting to: mongodb://localhost:27017/testdb?compressors=disabled&gssapiServiceName=mongodb
    Implicit session: session { "id" : UUID("456b350f-668f-4389-9901-7c456e2c50fe") }
    MongoDB server version: 4.2.3
    


    さて、Mongo Shellから(つまり、mongoを実行します 、次に mongoから プロンプト):

    mongo > use testDB
    mongo > show collections
    

    testCollが表示されます リストされています。

    mongo > db.testColl.find()
    { "_id" : ObjectId("5e4ea0d05816162b300b0346"), "a" : "hello" }
    

    これは、testDBで作成されたドキュメントです。 データベースとコレクションtestColl my_script.jsのコマンドに従って 。


    2。 Mongo ShellからJSスクリプトを実行します:

    また、my_script.jsを実行することもできます Mongo Shell内から 。

    mongo > load("my_script.js")
    true
    mongo > db.test.find()
    { "_id" : ObjectId("5e4ea0d05816162b300b0346"), "a" : "hello" }
    { "_id" : ObjectId("5e4ea10f276cde8fc5fedec5"), "a" : "hello" }
    

    _idが異なる2つのドキュメントがあることを確認してください フィールド値。

    注: .jsからは一部のコマンドしか実行できないと思います ファイル。


    3。別の例:

    script2.jsという名前のJSファイルを作成します 次の内容で:

    db.test.find().forEach(printjson)
    

    printjsonに注意してください shellメソッドは、ドキュメントをシェル出力に出力します。

    mongo > load("script2.js")
    { "_id" : ObjectId("5e4ea0d05816162b300b0346"), "a" : "hello" }
    { "_id" : ObjectId("5e4ea10f276cde8fc5fedec5"), "a" : "hello" }
    


    参照:


    1. Grailsドキュメントのカスタムイベントリスナーの例

    2. 今から7日前のレコードをMongoDBで検索します

    3. SpringDataMongoでのObjectIdの問題を使用したファセット+集計クエリ

    4. robo3Tを使用してC#で他のサーバーからMongoDBレプリカセットに接続できません