sql >> Database teknologi >  >> NoSQL >> MongoDB

Brug af Mongoose / MongoDB $addToSet-funktionalitet på en række objekter

Du skal bruge $ne operatør.

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

Dette vil kun opdatere dokumentet, hvis der ikke er noget underdokument i "artikel"-arrayet med værdien af ​​hashtag lig med "foo".

Som @BlakesSeven nævnte i kommentaren

$addToSet bliver irrelevant, når du først tester for tilstedeværelsen af ​​en af ​​værdierne, så dette kan lige så godt være en $push for klarhed i koden. Men princippet er korrekt siden $addToSet virker på hele objektet og ikke kun en del af det.

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


  1. ønsker at køre redis-server i baggrunden nonstop

  2. Redis ydeevne på en multi-core CPU

  3. Range Querying i Redis - Spring Data Redis

  4. Hvad er den mest modne MongoDB-driver til C#?