Ich frage mich, wie ich ein Array von Objekten in die "Root-Level-Dokumente" der Mongo-Sammlung mit eigenen vordefinierten _ID-Werten einfügen könnte.
Ich habe db.MyCollection.insert(array);
ausprobiert, erstellt jedoch verschachtelte Dokumente unter einer einzigen generierten _id in MongoDB.
var array = [
{ _id: 'rg8nsoqsxhpNYho2N',
goals: 0,
assists: 1,
total: 1 },
{ _id: 'yKMx6sHQboL5m8Lqx',
goals: 0,
assists: 1,
total: 1 }];
db.MyCollection.insert (Array);
Was ich möchte
db.collection.insertMany () ist das, was Sie brauchen (von 3.2 unterstützt):
db.users.insertMany(
[
{ name: "bob", age: 42, status: "A", },
{ name: "ahn", age: 22, status: "A", },
{ name: "xi", age: 34, status: "D", }
]
)
ausgabe:
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("57d6c1d02e9af409e0553dff"),
ObjectId("57d6c1d02323d119e0b3c0e8"),
ObjectId("57d6c1d22323d119e0b3c16c")
]
}
Warum nicht durch die Array-Objekte iterieren und sie einzeln einfügen?
array.forEach((item) => db.MyCollection.insert(item));
Gehen Sie diesen Link durch, um das genaue Ergebnis so zu erhalten, wie Sie es möchten:
https://docs.mongodb.org/manual/tutorial/insert-documents/#insert-a-document
Sie können MongoDB Bulk verwenden, um mehrere Dokumente in einem einzigen Aufruf der Datenbank einzufügen.
Durchlaufen Sie zunächst Ihr Array und rufen Sie die bulk
-Methode für jedes Element auf:
bulk.insert(item)
Rufen Sie nach der Schleife execute
auf:
bulk.execute()
Sehen Sie sich die referierte Dokumentation an, um mehr zu erfahren.