Sự khác biệt giữa các phương thức insert (), insertOne () và insertMany () trên MongoDB
-
db.collection.insert()
như đã đề cập trong tài liệu sẽ chèn một tài liệu hoặc các tài liệu vào một bộ sưu tập và trả về một đối tượng WriteResult cho các lần chèn đơn và một đối tượng BulkWriteResult cho các lần chèn hàng loạt.> 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()
như đã đề cập trong tài liệu sẽ chèn một tài liệu vào một bộ sưu tập và trả về một tài liệu trông giống như sau:> var document = db.collection.insertOne({"a": 3}) > document { "acknowledged" : true, "insertedId" : ObjectId("571a218011a82a1d94c02333") }
-
db.collection.insertMany()
chèn nhiều tài liệu vào một bộ sưu tập và trả về một tài liệu giống như sau:> var res = db.collection.insertMany([{"b": 3}, {'c': 4}]) > res { "acknowledged" : true, "insertedIds" : [ ObjectId("571a22a911a82a1d94c02337"), ObjectId("571a22a911a82a1d94c02338") ] }
Tôi nên sử dụng từng cái trong tình huống nào?
insert()
phương thức không được chấp nhận trong trình điều khiển chính vì vậy bạn nên sử dụng .insertOne()
bất cứ khi nào bạn muốn chèn một tài liệu vào bộ sưu tập của mình và .insertMany
khi bạn muốn chèn nhiều tài liệu vào bộ sưu tập của mình. Tất nhiên điều này không được đề cập trong tài liệu nhưng thực tế là không ai thực sự viết một ứng dụng trong shell. Điều tương tự cũng áp dụng cho updateOne
, updateMany
, deleteOne
, deleteMany
, findOneAndDelete
, findOneAndUpdate
và findOneAndReplace
. Xem Tổng quan về Hoạt động Viết.