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

MongoDB $pull синтаксис

Вашият „secondArray“ има структура на вложени елементи, така че трябва да идентифицирате външния елемент, който искате да съпоставите във вашата заявка, когато използвате позиционен $ оператор в актуализацията. По същество имате нужда от нещо подобно:

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

Така че всъщност има "две" стойности на id, които трябва да предадете с вашата заявка в допълнение към общия идентификатор на документа. Въпреки че това е вложено, това е добре, тъй като съвпадате само на "външно" ниво и само на един масив. Ако сте опитали да съпоставите позицията на повече от един масив, това не е възможно с позиционния оператор.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Вземете стойност в справка за търсене с MongoDB и Golang

  2. Преглед на валидирането на схемата на MongoDB

  3. Multi-Tenancy в приложението за стартиране на Reactive Spring с помощта на mongodb-reactive

  4. Не може да се свърже с услуга mongodb в клъстер на Kubernetes

  5. mongoose поддържа ли виртуални полета в select като SQL