Qual é a diferença entre os métodos insert(), insertOne() e insertMany() no MongoDB
-
db.collection.insert()conforme mencionado na documentação, insere um documento ou documentos em uma coleção e retorna um objeto WriteResult para inserções únicas e um objeto BulkWriteResult para inserções em massa.
> 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()conforme mencionado na documentação insere um documento em uma coleção e retorna um documento que se parece com este:
> var document = db.collection.insertOne({"a": 3}) > document { "acknowledged" : true, "insertedId" : ObjectId("571a218011a82a1d94c02333") } -
db.collection.insertMany()insere vários documentos em uma coleção e retorna um documento parecido com este:
> var res = db.collection.insertMany([{"b": 3}, {'c': 4}]) > res { "acknowledged" : true, "insertedIds" : [ ObjectId("571a22a911a82a1d94c02337"), ObjectId("571a22a911a82a1d94c02338") ] }
Em que situação devo usar cada um?
O
insert() O método está obsoleto no driver principal, então você deve usar o .insertOne() sempre que você quiser inserir um único documento em sua coleção e o .insertMany quando você deseja inserir vários documentos em sua coleção. Claro que isso não é mencionado na documentação, mas o fato é que ninguém escreve uma aplicação no shell. A mesma coisa se aplica a updateOne , updateMany , deleteOne , deleteMany , findOneAndDelete , findOneAndUpdate e findOneAndReplace . Consulte Visão geral das operações de gravação.