Каква е разликата между методите insert(), insertOne() и insertMany() в MongoDB
-
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 . Вижте Общ преглед на операциите за запис.