Mongo Shellのためにスクリプトを作成します.

6701 ワード

javascriptを使ってmongo shellのスクリプトを作成して、mongodbでデータを操作したり、管理操作を行ったりできます.
この教程では、どうやってmongo shellを使ってmongodbを訪問するjavascriptを作成するかを紹介します.
記事の目次
  • 新しい接続を開く
  • インタラクティブモンスターとスクリプトモンスターの違い
  • スクリプト作成
  • --eval option
  • JaveScriptスクリプトを実行する
  • 新しい接続を開く
    mongo shellまたはjavascriptファイルから、monogo()構造関数の実用化データベース接続が使用できます.
    new Mongo()
    new Mongo(<host>)
    new Mongo(<host:port>)
    
    以下の例を考慮して、この例は、デフォルトポート上でローカルホスト上で動作するmongodbのインスタンスの新しい接続になり、getdbを使用してデータベースmydatabaseを選択して、現在のデータベースとする.
    conn = new Mongo();
    db = conn.getDB("myDatabase");
    
    強制アクセス制御のMongoDB例に接続すると、db.auth()法を用いてアイデンティティ検証が可能となる.
    また、connect()法を用いてMongoDBの例を接続することもできる.以下の例は、非デフォルトポート27018を用いてローカルホスト上で動作するMongoDBの例に接続され、グローバルDB変数を設定する.
    > db=connect("localhost:27018")
    connecting to: localhost:27018
    Implicit session: session { "id" : UUID("4fb851d6-fb74-472f-abb5-68ef675556cf") }
    MongoDB server version: 4.0.6
    test
    > db=connect("localhost:27018/myDatabase")
    connecting to: mongodb://localhost:27018/myDatabase
    Implicit session: session { "id" : UUID("bb409c38-6ff6-40c9-90b3-bd7bcdaabb60") }
    MongoDB server version: 4.0.6
    myDatabase
    
    もっと参考にしてください.モンゴルシェルMethods
    対話型モンスターとシナリオ型モンスターの違い
    Mongo Shellのためにスクリプトを作成する場合、以下の内容を考慮してください.
  • dbグローバル変数を設定します.getdb()方法またはconnect()方法を使用してください.データベース参照をdb以外の変数に割り当てることができます.
  • デフォルトでは、mongo Shellに操作を書いています.一括操作をしたいなら、Bulk()を使ってください.具体的にはWrite Method Acknowledgementsを参照してください.
  • は、javascriptファイルの中でいかなるshellヘルププログラム(例えば、use、show dbsなど)を使用することができません.彼らは有効なjavascriptではありません.下表では最も一般的なMongo Shellヘルププログラムをそれらのjavascript等価物にマッピングします.
  • Shell Helpers
    JavaScript Equivalents
    show dbs,show databases
    db.adminCommund(‘listDatabases’)
    アメリカ
    db=db.getSiblingDB(')
    ショー・コレクション
    db.get Collection Names()
    show users
    db.getUsers()
    show roles
    db.getRoles({show Builltin Roles:true}
    ショーロゴ
    db.adminCommmand({{get Log}:'})
    ショーロゴ
    db.adminCommmand({{get Log}:'*})
    it
    cursor=db.co llection.find()if(cursor.has Next(){cursor.next();
  • は、相互作用モードにおいて、すべてのカーソルの内容を含む、mongo印刷の結果を出力する.スクリプトでは、Javascript print関数を使うか、またはmongo特有のprint json関数を使ってフォーマットされたjsonを返します.例えば、モンゴルshellスクリプトで結果カーソルのすべてを印刷するには、次のような習慣を使ってください.
     cursor = db.collection.find();
    while ( cursor.hasNext() ) {
       printjson( cursor.next() );
    }
    
    スクリプト作成
    システムのヒントの下で、javascriptをmono goで評価します.
    –eval option
    使用–evalオプションmongoは、次のようにjavascriptセグメントをshellに伝えます.
    $ mongo test --eval "printjson(db.getCollectionNames())"
    MongoDB shell version v4.0.6
    connecting to: mongodb://127.0.0.1:27017/test?gssapiServiceName=mongodb
    Implicit session: session { "id" : UUID("19124a55-be9b-4342-bdb7-af076b4a22f6") }
    MongoDB server version: 4.0.6
    [ ]
    
    JaveScriptスクリプトを実行します.
  • 方法1:linux shellコマンドライン
  • $ mongo localhost:27017/test myjsfile.js
    
    この動作は、ポート27017上のlocalhostインターフェースを介してアクセスできるmongodインスタンス上のテストデータベースに接続されたmyjsfile.jsスクリプトをmongo shellで実行する.
  • 方法2:mongodb shellコマンドライン
  • > load("myjstest.js")
    
    方法は相対パスと絶対パスを受け入れる.mongo shellの現在の作業ディレクトリが/data/dbであり、myjstest.jsが/data/db/scriptsディレクトリにある場合、mongo shellの以下の呼び出しは等価となります.
    > load("scripts/myjstest.js")
    > load("/data/db/scripts/myjstest.js")
    
    原文:https://docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell/