Quelle est la différence entre les méthodes insert()
, insertOne()
et insertMany()
sur MongoDB? Dans quelle situation devrais-je utiliser chacun?
J'ai lu les docs, mais ce n'est pas clair quand on les utilise.
Quelle est la différence entre les méthodes insert()
, insertOne()
et insertMany()
sur MongoDB? Dans quelle situation devrais-je utiliser chacun?
J'ai lu les docs, mais ce n'est pas clair quand on les utilise.
Quelle est la différence entre l'insert(), insertOne() et insertMany() méthodes sur MongoDB
db.collection.insert()
comme mentionné dans la documentation insère un document ou des documents sur la collecte et le rendement un WriteResult objet unique inserts et un BulkWriteResult objet pour les insertions.> 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()
comme mentionné dans la documentation d'insérer un document dans une collection et renvoie un document qui ressemble à ceci:> var document = db.collection.insertOne({"a": 3}) > document { "acknowledged" : true, "insertedId" : ObjectId("571a218011a82a1d94c02333") }
db.collection.insertMany()
insère plusieurs documents dans une collection et renvoie un document qui ressemble à ceci:> var res = db.collection.insertMany([{"b": 3}, {'c': 4}]) > res { "acknowledged" : true, "insertedIds" : [ ObjectId("571a22a911a82a1d94c02337"), ObjectId("571a22a911a82a1d94c02338") ] }
Dans quelle situation devrais-je utiliser?
L'
insert()
méthode est dépréciée dans les principaux moteurs de sorte que vous devriez utiliser les l'.insertOne()
méthode à chaque fois que vous souhaitez insérer un document unique dans votre collection et l'.insertMany
lorsque vous souhaitez insérer plusieurs documents dans votre collection. Bien sûr, ce n'est pas mentionné dans la documentation, mais le fait est que personne ne l'a vraiment écrit une application dans le shell. La même chose s'applique à laupdateOne
,updateMany
,deleteOne
,deleteMany
,findOneAndDelete
,findOneAndUpdate
etfindOneAndReplace
. Voir Les Opérations D'Écriture Aperçu.
db.collection.insert()
:
Il vous permet d'insérer Un ou plusieurs documents dans la collection. Syntaxe:
db.collection.insert({<document>});
Plusieurs insérer:
db.collection.insérer([ , , ... ]);
Retourne un WriteResult
objet: WriteResult({ "nInserted" : 1 });
db.collection.insertOne()
:
Il vous permet d'insérer exactement 1 document de la collection. Sa syntaxe est la même que celle de l'insert unique en insert()
.
Renvoie le document suivant:
{
"acknowledged" : true,
"insertedId" : ObjectId("56fc40f9d735c28df206d078")
}
db.collection.insertMany()
:
Il vous permet d'insérer un tableau de documents dans la collection. Syntaxe:
db.collection.insertMany(
{ [ <document 1> , <document 2>, ... ] });
Renvoie le document suivant:
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("562a94d381cb9f1cd6eb0e1a"),
ObjectId("562a94d381cb9f1cd6eb0e1b"),
ObjectId("562a94d381cb9f1cd6eb0e1c")
]
}
Tous les trois de ces vous permettent également de définir une coutume writeConcern
et aussi de créer une collection si elle n'existe pas.
Il existe également une différence de traitement d'erreur, vérifiez ici. L'insert de commande renvoie un document à la fois les succès et les cas d'erreur. Mais le insertOne et insertMany commandes de lève des exceptions. Les Exceptions sont plus faciles à manipuler dans le code, que l'évaluation du document retourné à comprendre les erreurs. Probablement la raison pour laquelle elles sont déconseillées dans les drivers comme indiqué dans sstyvane de réponse.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.