Qual è la differenza tra i metodi insert(), insertOne() e insertMany() su MongoDB
-
db.collection.insert()
come menzionato nella documentazione inserisce uno o più documenti in una raccolta e restituisce un oggetto WriteResult per gli inserimenti singoli e un oggetto BulkWriteResult per gli inserimenti in blocco.> 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()
come indicato nella documentazione inserisce un documento in una collezione e restituisce un documento che assomiglia a questo:> var document = db.collection.insertOne({"a": 3}) > document { "acknowledged" : true, "insertedId" : ObjectId("571a218011a82a1d94c02333") }
-
db.collection.insertMany()
inserisce più documenti in una raccolta e restituisce un documento simile al seguente:> var res = db.collection.insertMany([{"b": 3}, {'c': 4}]) > res { "acknowledged" : true, "insertedIds" : [ ObjectId("571a22a911a82a1d94c02337"), ObjectId("571a22a911a82a1d94c02338") ] }
In quale situazione dovrei usarli?
Il insert()
il metodo è deprecato nel driver principale, quindi dovresti usare il .insertOne()
ogni volta che vuoi inserire un singolo documento nella tua collezione e il .insertMany
quando vuoi inserire più documenti nella tua collezione. Ovviamente questo non è menzionato nella documentazione, ma il fatto è che nessuno scrive davvero un'applicazione nella shell. La stessa cosa vale per updateOne
, updateMany
, deleteOne
, deleteMany
, findOneAndDelete
, findOneAndUpdate
e findOneAndReplace
. Vedere Panoramica delle operazioni di scrittura.