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

Korzystanie z funkcji Mongoose / MongoDB $addToSet na tablicy obiektów

Musisz użyć $ne operatora.

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

To zaktualizuje dokument tylko wtedy, gdy w tablicy „article” nie ma poddokumentu o wartości hashtag równej „foo”.

Jak @BlakesSeven wspomniał w komentarzu

$addToSet staje się nieistotny, gdy testujesz obecność jednej z wartości, więc równie dobrze może to być $push dla przejrzystości kodu. Ale zasada jest poprawna, ponieważ $addToSet działa na całym obiekcie, a nie tylko na jego części.

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Zapytanie Mongodb oparte na pozycji w określonej pozycji w tablicy

  2. Mongoose find() nie zwraca wyniku

  3. MongoDB $eq Operator potoku agregacji

  4. O ile szybszy jest Redis niż mongoDB?

  5. Mongoose posortuj zagregowany wynik