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

insert()、insertOne()、insertMany()メソッドの違いは何ですか?

    MongoDBのinsert()、insertOne()、insertMany()メソッドの違いは何ですか

    • db.collection.insert() ドキュメントに記載されているように、1つまたは複数のドキュメントをコレクションに挿入し、単一挿入の場合はWriteResultオブジェクトを、一括挿入の場合はBulkWriteResultオブジェクトを返します。

      > var d = db.collection.insert({"b": 3})
      > d
      WriteResult({ "nInserted" : 1 })
      > var d2 = db.collection.insert([{"b": 3}, {'c': 4}])
      > d2
      BulkWriteResult({
              "writeErrors" : [ ],
              "writeConcernErrors" : [ ],
              "nInserted" : 2,
              "nUpserted" : 0,
              "nMatched" : 0,
              "nModified" : 0,
              "nRemoved" : 0,
              "upserted" : [ ]
      })
      
    • db.collection.insertOne() ドキュメントに記載されているように、ドキュメントをコレクションに挿入し、次のようなドキュメントを返します。

      > var document = db.collection.insertOne({"a": 3})
      > document
      {
              "acknowledged" : true,
              "insertedId" : ObjectId("571a218011a82a1d94c02333")
      }
      
    • db.collection.insertMany() コレクションに複数のドキュメントを挿入し、次のようなドキュメントを返します:

      > var res = db.collection.insertMany([{"b": 3}, {'c': 4}])
      > res
      {
              "acknowledged" : true,
              "insertedIds" : [
                      ObjectId("571a22a911a82a1d94c02337"),
                      ObjectId("571a22a911a82a1d94c02338")
              ]
      }
      

    どのような状況でそれぞれを使用する必要がありますか?

    insert() メソッドはメジャードライバーで非推奨になっているため、.insertOne()を使用する必要があります コレクションと.insertManyに単一のドキュメントを挿入する場合は常にメソッド コレクションに複数のドキュメントを挿入する場合。もちろん、これはドキュメントには記載されていませんが、実際には、シェルでアプリケーションを作成する人は誰もいません。同じことがupdateOneにも当てはまります 、updateManydeleteOnedeleteManyfindOneAndDeletefindOneAndUpdate およびfindOneAndReplace 。書き込み操作の概要を参照してください。



    1. Mongoose(またはMongoDB)のTransientTransactionErrorとは何ですか?

    2. トランザクションがプールへの接続を返さず、使い果たされるとブロックするSpringRedisConnectionFactory

    3. MongoDBで好きな投票システムをモデル化する方法

    4. 一意のキーを追加した後でもMongoDBがドキュメントを複製する