sql >> Databáze >  >> NoSQL >> MongoDB

Jaký je rozdíl mezi metodou insert(), insertOne() a insertMany()?

Jaký je rozdíl mezi metodami insert(), insertOne() a insertMany() na MongoDB

  • db.collection.insert() jak je uvedeno v dokumentaci, vloží dokument nebo dokumenty do kolekce a vrátí objekt WriteResult pro jednotlivé přílohy a objekt BulkWriteResult pro hromadné vložení.

    > 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() jak je uvedeno v dokumentaci, vloží dokument do sbírky a vrátí dokument, který vypadá takto:

    > var document = db.collection.insertOne({"a": 3})
    > document
    {
            "acknowledged" : true,
            "insertedId" : ObjectId("571a218011a82a1d94c02333")
    }
    
  • db.collection.insertMany() vloží více dokumentů do kolekce a vrátí dokument, který vypadá takto:

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

V jaké situaci bych měl každý z nich použít?

insert() metoda je v hlavním ovladači zastaralá, takže byste měli použít the .insertOne() metoda, kdykoli chcete vložit jeden dokument do své sbírky a .insertMany když chcete do své sbírky vložit více dokumentů. To samozřejmě není uvedeno v dokumentaci, ale faktem je, že nikdo ve skutečnosti nepíše aplikaci v shellu. Totéž platí pro updateOne , updateMany , deleteOne , deleteMany , findOneAndDelete , findOneAndUpdate a findOneAndReplace . Viz Přehled operací zápisu.



  1. Dotaz IDE pro MongoDB?

  2. mongoDB upsert na pole

  3. Aktualizace MongoDB Deep Array

  4. Jak převést z datového typu řetězec na datum?