sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cuál es la diferencia entre los métodos insert(), insertOne() e insertMany()?

¿Cuál es la diferencia entre los métodos insert(), insertOne() e insertMany() en MongoDB

  • db.collection.insert() como se menciona en la documentación, inserta un documento o documentos en una colección y devuelve un objeto WriteResult para inserciones individuales y un objeto BulkWriteResult para inserciones masivas.

    > 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() como se menciona en la documentación, inserta un documento en una colección y devuelve un documento que se ve así:

    > var document = db.collection.insertOne({"a": 3})
    > document
    {
            "acknowledged" : true,
            "insertedId" : ObjectId("571a218011a82a1d94c02333")
    }
    
  • db.collection.insertMany() inserta varios documentos en una colección y devuelve un documento similar a este:

    > var res = db.collection.insertMany([{"b": 3}, {'c': 4}])
    > res
    {
            "acknowledged" : true,
            "insertedIds" : [
                    ObjectId("571a22a911a82a1d94c02337"),
                    ObjectId("571a22a911a82a1d94c02338")
            ]
    }
    

¿En qué situación debo usar cada uno?

El insert() El método está en desuso en el controlador principal, por lo que debe usar el .insertOne() cada vez que desee insertar un solo documento en su colección y .insertMany cuando desee insertar varios documentos en su colección. Por supuesto, esto no se menciona en la documentación, pero el hecho es que nadie realmente escribe una aplicación en el shell. Lo mismo se aplica a updateOne , updateMany , deleteOne , deleteMany , findOneAndDelete , findOneAndUpdate y findOneAndReplace . Consulte Descripción general de las operaciones de escritura.