MongoDB上的insert()insertOne()insertMany()方法之间有什么区别?在什么情况下我应该使用每一个?

我阅读了文档,但不清楚何时使用每个文档。

最佳答案




文档中提到的

  • db.collection.insert() 将一个或多个文档插入到集合中并返回
    单个插入的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。当然,文档中没有提到这一点,但事实是,没有人真正在shell中编写应用程序。同样的情况适用于 updateOne updateMany deleteOne deleteMany findOneAndDelete findOneAndUpdate findOneAndReplace 。参见Write Operations Overview

    关于mongodb - insert(),insertOne()和insertMany()方法有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36792649/

    10-09 18:25