Je me demande comment je pourrais insérer un tableau d'objets dans la collection Mongo "Documents de niveau racine" avec ses propres valeurs _id prédéfinies.
J'ai essayé db.MyCollection.insert(array);
mais cela crée des documents imbriqués sous un seul id généré dans MongoDB.
var array = [
{ _id: 'rg8nsoqsxhpNYho2N',
goals: 0,
assists: 1,
total: 1 },
{ _id: 'yKMx6sHQboL5m8Lqx',
goals: 0,
assists: 1,
total: 1 }];
db.MyCollection.insert (array);
Ce que je veux
db.collection.insertMany () est ce dont vous avez besoin (pris en charge à partir de 3.2):
db.users.insertMany(
[
{ name: "bob", age: 42, status: "A", },
{ name: "ahn", age: 22, status: "A", },
{ name: "xi", age: 34, status: "D", }
]
)
sortie:
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("57d6c1d02e9af409e0553dff"),
ObjectId("57d6c1d02323d119e0b3c0e8"),
ObjectId("57d6c1d22323d119e0b3c16c")
]
}
Pourquoi ne pas parcourir les objets du tableau et les insérer un à la fois?
array.forEach((item) => db.MyCollection.insert(item));
Passez par ce lien pour obtenir le résultat exact comme vous le souhaitez:
https://docs.mongodb.org/manual/tutorial/insert-documents/#insert-a-document
Vous pouvez utiliser MongoDB Bulk pour insérer plusieurs documents en un seul appel à la base de données.
Commencez par parcourir votre tableau et appelez la méthode bulk
pour chaque élément:
bulk.insert(item)
Après la boucle, appelez execute
:
bulk.execute()
Jetez un coup d'œil à la documentation référencée pour en savoir plus.