Wat is het verschil tussen de methoden insert(), insertOne() en insertMany() op MongoDB
-
db.collection.insert()
zoals vermeld in de documentatie voegt een document of documenten in een verzameling in en retourneert een WriteResult-object voor enkele inserts en een BulkWriteResult-object voor bulkinserts.> 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()
zoals vermeld in de documentatie voegt een document toe aan een verzameling en retourneert een document dat er als volgt uitziet:> var document = db.collection.insertOne({"a": 3}) > document { "acknowledged" : true, "insertedId" : ObjectId("571a218011a82a1d94c02333") }
-
db.collection.insertMany()
voegt meerdere documenten in een verzameling in en retourneert een document dat er als volgt uitziet:> var res = db.collection.insertMany([{"b": 3}, {'c': 4}]) > res { "acknowledged" : true, "insertedIds" : [ ObjectId("571a22a911a82a1d94c02337"), ObjectId("571a22a911a82a1d94c02338") ] }
In welke situatie moet ik ze allemaal gebruiken?
De insert()
methode is verouderd in het hoofdstuurprogramma, dus u moet de .insertOne()
. gebruiken methode wanneer u een enkel document in uw verzameling wilt invoegen en de .insertMany
wanneer u meerdere documenten aan uw collectie wilt toevoegen. Natuurlijk wordt dit niet vermeld in de documentatie, maar feit is dat niemand echt een applicatie in de shell schrijft. Hetzelfde geldt voor updateOne
, updateMany
, deleteOne
, deleteMany
, findOneAndDelete
, findOneAndUpdate
en findOneAndReplace
. Zie Overzicht schrijfbewerkingen.