69 votes

Quelle est la différence entre les méthodes insert (), insertOne () et insertMany ()?

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.

101voto

user3100115 Points 15249

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 à la updateOne, updateMany, deleteOne, deleteMany, findOneAndDelete, findOneAndUpdate et findOneAndReplace. Voir Les Opérations D'Écriture Aperçu.

12voto

ayushgp Points 2092
  1. db.collection.insert():

    Il vous permet d'insérer Un ou plusieurs documents dans la collection. Syntaxe:

    • Insert unique: db.collection.insert({<document>});
    • Plusieurs insérer:

      db.collection.insérer([ , , ... ]);

    Retourne un WriteResult objet: WriteResult({ "nInserted" : 1 });

  2. 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")
    }
    
  3. 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.

9voto

Andrew Nessin Points 162

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.

-2voto

Si la collection n'existe pas, la méthode insertOne () crée la collection. Si vous entrez à nouveau les mêmes données, Mongodod créera un autre identifiant unique pour éviter les doublons.

Prograide.com

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.

Powered by:

X