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

Jak napisać zapytanie o aktualizację w mongodb dla głęboko zagnieżdżonej tablicy?

Wypróbuj positional $ w aktualizacji, który działa jako symbol zastępczy dla pierwszego elementu, który pasuje do dokumentu zapytania, a kiedy go używasz, upewnij się, że cards pole tablicy musi pojawić się jako część dokumentu zapytania. W twoim przypadku chcesz dodać card dokument do 'cards' tablica, ale tylko wtedy, gdy cardId nie istnieje:

var query = {        
    "cardInfo.cards.cardId": { "$nin": ["somecardid"] }
};
var update = {        
    "$push": {
        "cardInfo": { "customerId": "25934285649875" },
        "cardInfo.$.cards": {
            cardId: "somecardid",
            cardType: "type",
            createdAt: new Date().toISOString(),
            isActive: true
        }
    }
};

Customer.update(query, update, function (err, result) { ... }); 



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Przewodnik programisty dotyczący shardingu MongoDB

  2. Wartość domyślna nie jest ustawiona podczas używania aktualizacji z Upsert jako true

  3. Wykonywanie zapytań regex za pomocą PyMongo

  4. MongoDB $degreesToRadians

  5. Wiele baz danych (mongodb[mongoengine] i sql ) z django 1.8