Jaka jest różnica między metodami insert(), insertOne() i insertMany() w MongoDB
-
db.collection.insert()jak wspomniano w dokumentacji, wstawia dokument lub dokumenty do kolekcji i zwraca obiekt WriteResult dla pojedynczych wstawek i obiekt BulkWriteResult dla wstawek zbiorczych.> 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()jak wspomniano w dokumentacji, wstawia dokument do kolekcji i zwraca dokument, który wygląda tak:> var document = db.collection.insertOne({"a": 3}) > document { "acknowledged" : true, "insertedId" : ObjectId("571a218011a82a1d94c02333") } -
db.collection.insertMany()wstawia wiele dokumentów do kolekcji i zwraca dokument, który wygląda tak:> var res = db.collection.insertMany([{"b": 3}, {'c': 4}]) > res { "acknowledged" : true, "insertedIds" : [ ObjectId("571a22a911a82a1d94c02337"), ObjectId("571a22a911a82a1d94c02338") ] }
W jakiej sytuacji powinienem użyć każdego z nich?
insert() Metoda jest przestarzała w głównym sterowniku, więc powinieneś użyć .insertOne() metodę, gdy chcesz wstawić pojedynczy dokument do swojej kolekcji i .insertMany gdy chcesz wstawić do swojej kolekcji wiele dokumentów. Oczywiście nie jest to wspomniane w dokumentacji, ale faktem jest, że nikt tak naprawdę nie pisze aplikacji w powłoce. To samo dotyczy updateOne , updateMany , deleteOne , deleteMany , findOneAndDelete , findOneAndUpdate i findOneAndReplace . Zobacz Omówienie operacji zapisu.