MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как правилно да направите масово upsert/update в MongoDB

Вашият синтаксис тук е принципно правилен, но общото ви изпълнение е грешно и трябва да сте "отделили" действието "upsert" от другите модификации. В противен случай те ще се „сблъскат“ и ще произведат грешка, когато възникне „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);
    });
});

Уверете се, че вашият sails-mongo е най-новата версия, поддържаща правилно груповите операции, включително включването на скорошен роден драйвер за възел. Най-новият поддържа драйвер v2, което е добре за това.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongodb $exists винаги връща 0

  2. Как да извикам mongodb в моите функции за карта/намаляване? Добра практика ли е?

  3. $ Composer не може да намери разширение mongodb, необходимо е разширение Mongodb

  4. MongoDB Aggregate Framework – групиране по година

  5. как да свържа база данни на друга машина mongodb в локалната мрежа?