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/