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

Използване на функционалност Mongoose / MongoDB $addToSet върху масив от обекти

Трябва да използвате $ne оператор.

var data = { 'kind': 'tortoise', 'hashtag': 'foo' };
Model.update(
    { 'articles.hashtag': { '$ne': 'foo' } }, 
    { '$addToSet': { 'articles': data } }
)

Това ще актуализира документа само ако в масива "article" няма поддокумент със стойността на hashtag, равна на "foo".

Както @BlakesSeven спомена в коментара

$addToSet става неуместно, след като тествате за наличието на една от стойностите, така че това може също да е $push за яснота на кода. Но принципът е правилен, тъй като $addToSet работи върху целия обект, а не само върху част от него.

Model.update({ 
    { 'articles.hashtag': { '$ne': 'foo' } }, 
    { '$push': {'articles':  data } }
)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да използвам Elasticsearch с MongoDB?

  2. Къде стои mongodb в теоремата на CAP?

  3. MongoDB:преместване на поддокумент

  4. Интегриране на ClusterControl със SNMP - Доказателство за концепция:Част първа

  5. MongoDB - Създаване на връзка