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

MongoDB insertMany()

    MongoDBでは、 db.collection.insertMany() メソッドは、複数のドキュメントをコレクションに挿入します。

    コレクション partは、ドキュメントを挿入するコレクションの名前です。

    db.collection.insertMany()の使用例を次に示します。 petsというコレクションに複数のドキュメントを挿入します :

    db.pets.insertMany([
        { _id: 1, name: "Wag", type: "Dog" },
        { _id: 2, name: "Bark", type: "Dog" },
        { _id: 3, name: "Meow", type: "Cat" }
        ])

    結果:

    { "acknowledged" : true, "insertedIds" : [ 1, 2, 3 ] } 

    db.collection.insertMany() メソッドは以下を含むドキュメントを返します:

    • ブール値の確認済み trueとして 操作が書き込みの懸念またはfalseで実行された場合 書き込みの懸念が無効になっている場合。
    • _idの配列 正常に挿入された各ドキュメントの値。

    ここで、 db.collection.find()を使用すると コレクションを見ると、新しく追加されたドキュメントが表示されます。

    db.pets.find()

    結果:

    { "_id" : 1, "name" : "Wag", "type" : "Dog" }
    { "_id" : 2, "name" : "Bark", "type" : "Dog" }
    { "_id" : 3, "name" : "Meow", "type" : "Cat" }

    この場合、コレクションに含まれるのは3つのドキュメントのみであるため、これらのドキュメントのみが返されました。

    ただし、コレクションが大きい場合は、ドキュメントIDを使用して、関心のあるドキュメントのみに結果を絞り込むことができます。

    db.pets.find({_id: {$in: [1,2,3]}})

    結果:

    { "_id" : 1, "name" : "Wag", "type" : "Dog" }
    { "_id" : 2, "name" : "Bark", "type" : "Dog" }
    { "_id" : 3, "name" : "Meow", "type" : "Cat" }

    コレクションが存在しない場合はどうなりますか?

    コレクションが存在しない場合は、コレクションが作成され、ドキュメントが追加されます。

    コレクションがすでに存在する場合、ドキュメントは単にコレクションに追加されます( _id が提供されます)。 値は既存の値と競合しません。

    この例を作成したとき、コレクションは存在しなかったため、挿入操作で作成されました。

    _id フィールド

    _id fieldは、MongoDBの一意の識別子フィールドです。

    前の例で示したように、独自の _idを指定できます ドキュメントのフィールド。その場合、その値はコレクション内で一意である必要があります。これは、 _idが原因です フィールドは、ドキュメントの一意の識別子として使用されます。

    _idを指定せずにドキュメントを挿入する例を次に示します。 フィールド。

    db.pets.insertMany([
        { name: "Bruce", type: "Bat" },
        { name: "Sweetie", type: "Honey Badger" }
        ])

    結果:

    {
    	"acknowledged" : true,
    	"insertedIds" : [
    		ObjectId("5fe30ef737b49e0faf1af215"),
    		ObjectId("5fe30ef737b49e0faf1af216")
    	]
    }

    _id ドキュメントの値が返されます。これらを使用して、挿入したドキュメントのみをコレクションで検索できます。

    ただし、この場合は、コレクション全体を見てみましょう。

    db.pets.find()

    結果:

    { "_id" : 1, "name" : "Wag", "type" : "Dog" }
    { "_id" : 2, "name" : "Bark", "type" : "Dog" }
    { "_id" : 3, "name" : "Meow", "type" : "Cat" }
    { "_id" : ObjectId("5fe30ef737b49e0faf1af215"), "name" : "Bruce", "type" : "Bat" }
    { "_id" : ObjectId("5fe30ef737b49e0faf1af216"), "name" : "Sweetie", "type" : "Honey Badger" }

    2つの新しいドキュメントがコレクションに含まれていることがわかります。

    注文 パラメータ

    db.collection.insertMany() メソッドはorderedも受け入れます パラメータ。これは、デフォルト値が trueのブールパラメータです。 。

    注文 パラメータは、挿入操作を順序付けするか順序付けしないかを指定します。

    注文の場合 falseに設定されています 、ドキュメントは順序付けられていない形式で挿入され、 mongodによって並べ替えられる場合があります パフォーマンスを向上させるため。

    順序付けされた挿入では、ドキュメントの1つの挿入中にエラーが発生した場合、MongoDBは配列内の残りのドキュメントを処理せずにエラーを返します。

    順序付けされていない挿入では、ドキュメントの1つを挿入中にエラーが発生した場合、MongoDBは残りのドキュメントを配列に挿入し続けます。

    詳細情報

    db.collection.insertMany() メソッドはwriteConcernも受け入れます 引数。書き込み操作のためにMongoDBから要求される確認応答のレベルを説明します。

    db.collection.insertMany()については、MongoDBのドキュメントを参照してください。 詳細については。


    1. Redisクラスターへの接続に失敗しました

    2. モンゴ:外部の重みで並べ替える方法

    3. SpringDataMongoDBとJava8LocalDate MappingException

    4. ハイブリッドクラウド環境全体でのMongoDBの複製