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

MongoDB $pull składnia

Twoja „secondArray” ma zagnieżdżoną strukturę elementów, więc musisz zidentyfikować zewnętrzny element, który chcesz dopasować w zapytaniu, używając pozycyjnego $ operatora w aktualizacji. Zasadniczo potrzebujesz czegoś takiego:

bulk.find({ 
    "_id": new mongo.ObjectID(req.session._id), 
    "secondArray._id": "7423" 
}).update({
    "$pull": { 
        "firstArray": { "_id": "153" },
        "secondArray.$.firstArrayIds": 153
    }
});

Tak więc w rzeczywistości istnieją „dwie” wartości identyfikatora, które musisz przekazać wraz z żądaniem oprócz ogólnego identyfikatora dokumentu. Nawet jeśli jest to zagnieżdżone, jest to w porządku, ponieważ dopasowujesz tylko na poziomie „zewnętrznym” i tylko na jednej tablicy. Jeśli próbowałeś dopasować pozycję w więcej niż jednej tablicy, nie jest to możliwe przy użyciu operatora pozycyjnego.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Instalowanie Mongoose w NodeJS 0.10.8

  2. Jak zaktualizować pole przy użyciu jego poprzedniej wartości w MongoDB/Mongoose?

  3. Kursor agregacji Mongo i liczenie

  4. Wydajność MongoDB przy rosnącej strukturze danych

  5. Ochrona danych z ClusterControl