In MongoDB de db.collection.insertMany()
methode voegt meerdere documenten in een verzameling in.
De collection
deel is de naam van de collectie waarin de documenten moeten worden ingevoegd.
Voorbeeld
Hier is een voorbeeld van het gebruik van db.collection.insertMany()
om meerdere documenten in te voegen in een verzameling genaamd pets
:
db.pets.insertMany([
{ _id: 1, name: "Wag", type: "Dog" },
{ _id: 2, name: "Bark", type: "Dog" },
{ _id: 3, name: "Meow", type: "Cat" }
])
Resultaat:
{ "acknowledged" : true, "insertedIds" : [ 1, 2, 3 ] }
De db.collection.insertMany()
methode retourneert een document met daarin:
- Een boolean
acknowledged
alstrue
als de bewerking werd uitgevoerd met schrijfproblemen offalse
als schrijfzorg was uitgeschakeld. - Een array van
_id
waarden voor elk succesvol ingevoegd document.
Als we nu db.collection.find()
. gebruiken om de collectie te bekijken, zullen we de nieuw toegevoegde documenten zien.
db.pets.find()
Resultaat:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" }
In dit geval zijn onze drie documenten de enige in de collectie, en dus zijn alleen deze documenten geretourneerd.
Als de verzameling echter groot was, zouden we de document-ID's kunnen gebruiken om het resultaat te beperken tot alleen de documenten waarin we geïnteresseerd zijn.
db.pets.find({_id: {$in: [1,2,3]}})
Resultaat:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" }
Wat als de collectie niet bestaat?
Als de verzameling niet bestaat, wordt deze gemaakt en worden de documenten eraan toegevoegd.
Als de verzameling al bestaat, worden de documenten er gewoon aan toegevoegd (mits hun _id
waarden zijn niet in strijd met bestaande).
Toen ik dit voorbeeld maakte, bestond de verzameling niet, en daarom heeft de invoegbewerking deze gemaakt.
De _id
Veld
De _id
field is een uniek identificatieveld in MongoDB.
Zoals aangetoond in het vorige voorbeeld, kunt u uw eigen _id
. opgeven veld in het document. Als je dat doet, moet de waarde ervan uniek zijn binnen de collectie. Dit komt omdat uw _id
veld wordt gebruikt als de unieke identificatie van het document.
Hier is een voorbeeld van het invoegen van documenten zonder de _id
velden.
db.pets.insertMany([
{ name: "Bruce", type: "Bat" },
{ name: "Sweetie", type: "Honey Badger" }
])
Resultaat:
{ "acknowledged" : true, "insertedIds" : [ ObjectId("5fe30ef737b49e0faf1af215"), ObjectId("5fe30ef737b49e0faf1af216") ] }
De _id
waarden van de documenten worden geretourneerd. We zouden deze kunnen gebruiken om de collectie te doorzoeken op alleen de documenten die we hebben ingevoegd.
Maar laten we in dit geval eens naar de hele collectie kijken.
db.pets.find()
Resultaat:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" } { "_id" : ObjectId("5fe30ef737b49e0faf1af215"), "name" : "Bruce", "type" : "Bat" } { "_id" : ObjectId("5fe30ef737b49e0faf1af216"), "name" : "Sweetie", "type" : "Honey Badger" }
We kunnen zien dat onze twee nieuwe documenten in de collectie zijn opgenomen.
De ordered
Parameter
De db.collection.insertMany()
methode accepteert ook een ordered
parameter. Dit is een booleaanse parameter met een standaardwaarde van true
.
De ordered
parameter specificeert of de invoegbewerking moet worden besteld of ongeordend.
Indien ordered
is ingesteld op false
, documenten worden in een ongeordend formaat ingevoegd en kunnen opnieuw worden gerangschikt door mongod
om de prestaties te verbeteren.
Bij bestelde invoegingen, als er een fout optreedt tijdens een invoeging van een van de documenten, geeft MongoDB een fout terug zonder de resterende documenten in de array te verwerken.
Als er bij ongeordende invoegingen een fout optreedt tijdens het invoegen van een van de documenten, gaat MongoDB door met het invoegen van de overige documenten in de array.
Meer informatie
De db.collection.insertMany()
methode accepteert ook een writeConcern
argument, dat het niveau van bevestiging beschrijft dat van MongoDB is gevraagd voor schrijfbewerkingen.
Zie de MongoDB-documentatie voor db.collection.insertMany()
voor meer informatie.