MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Zaktualizuj tablicę w mongo i upsert

Istnieje możliwość osiągnięcia tego, co chcesz.

// step 1
var writeResult = db.collection.update({
    "providerId" : ID,
    "providers" : {
        $elemMatch : {
            "merchantId" : MERCHANTID
        }
    }
}, {
    $set : {
        "providers.$.merchantId" : MERCHANTID,
        "providers.$.name" : NAME,
        "providers.$.valid" : true,
        "providers.$.data" : DATA
    }
});


// step 2
if (!writeResult.nModified) { // if step 1 has succeeded on update, nModified == 1, else nModified == 0
    db.collection.update({
        "providerId" : ID,
        "providers.merchantId" : {
            $ne : MERCHANTID        // this criteria is necessary to avoid concurrent issue
        }
    }, {
        "$push" : {
            "prividers" : {
                "merchantId" : MERCHANTID,
                "name" : NAME,
                "valid" : true,
                "data" : DATA
            }
        }
    });
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Próba wypełnienia w manguście tylko wtedy, gdy ref nie jest null - nie działa

  2. Grupa Mongodb i sortowanie

  3. Silnik wykrywania i monitorowania serwerów jest przestarzały

  4. Jak mogę pobrać dokumenty podrzędne z tablicy?

  5. Jak zaimplementować zapytanie filtra wyszukiwania za pomocą mongodb?