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

Jak správně provést hromadnou aktualizaci/aktualizaci v MongoDB

Vaše syntaxe je zde v zásadě správná, ale vaše obecné provedení bylo chybné a měli byste "oddělit" akci "upsert" od ostatních úprav. V opačném případě se "sráží" a způsobí chybu, když dojde k "upsert":

LineupPointsRecord.native(function (err,collection) {

    var bulk = collection.initializeOrderedBulkOp();

    // Match and update only. Do not attempt upsert
    bulk.find({
        "teamId": lineUpPointsGeneralRecord.teamId,
        "round": 0
    }).updateOne({
        "$inc": { "lfPoints": roundPoints },
        "$push": { "roundPoints": roundPoints }
    });

    // Attempt upsert with $setOnInsert only
    bulk.find({
        "teamId": lineUpPointsGeneralRecord.teamId,
        "round": 0
    }).upsert().updateOne({
        "$setOnInsert": lineUpPointsGeneralRecord
    });

    bulk.execute(function (err,updateResult) {
        sails.log.debug(err,updateResult);
    });
});

Ujistěte se, že vaše sails-mongo je nejnovější verze, která správně podporuje hromadné operace včetně nejnovějšího nativního ovladače uzlu. Nejnovější podporuje ovladač v2, což je v pořádku.



  1. Mongoid:používáte více než jednu databázi?

  2. Obsahuje šifrování zálohování pro MySQL, MongoDB a PostgreSQL - ClusterControl 1.5.1

  3. Vyhledávací panel s návrhy s nodejs a mongodb

  4. spring-data-mongo - volitelné parametry dotazu?