MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Qual é a diferença entre o método insert(), insertOne() e insertMany()?


Qual é a diferença entre os métodos insert(), insertOne() e insertMany() no MongoDB

  • db.collection.insert() conforme mencionado na documentação, insere um documento ou documentos em uma coleção e retorna um objeto WriteResult para inserções únicas e um objeto BulkWriteResult para inserções em massa.
    > 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() conforme mencionado na documentação insere um documento em uma coleção e retorna um documento que se parece com este:
    > var document = db.collection.insertOne({"a": 3})
    > document
    {
            "acknowledged" : true,
            "insertedId" : ObjectId("571a218011a82a1d94c02333")
    }
    

  • db.collection.insertMany() insere vários documentos em uma coleção e retorna um documento parecido com este:
    > var res = db.collection.insertMany([{"b": 3}, {'c': 4}])
    > res
    {
            "acknowledged" : true,
            "insertedIds" : [
                    ObjectId("571a22a911a82a1d94c02337"),
                    ObjectId("571a22a911a82a1d94c02338")
            ]
    }
    

Em que situação devo usar cada um?

O insert() O método está obsoleto no driver principal, então você deve usar o .insertOne() sempre que você quiser inserir um único documento em sua coleção e o .insertMany quando você deseja inserir vários documentos em sua coleção. Claro que isso não é mencionado na documentação, mas o fato é que ninguém escreve uma aplicação no shell. A mesma coisa se aplica a updateOne , updateMany , deleteOne , deleteMany , findOneAndDelete , findOneAndUpdate e findOneAndReplace . Consulte Visão geral das operações de gravação.