Ответ 1
Какая разница между методами insert(), insertOne() и insertMany() на MongoDB
-
db.collection.insert()
, как указано в документации, вставляет документ или документы в коллекцию и возвращает a 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
, когда вы хотите вставить несколько документов в свою коллекцию. Конечно, это не упоминается в документации, но факт в том, что никто не пишет приложение в оболочке. То же самое относится к updateOne
, updateMany
, deleteOne
, deleteMany
, findOneAndDelete
, findOneAndUpdate
и findOneAndReplace
. См. Обзор операций записи.