sql >> Database >  >> NoSQL >> MongoDB

Mongoose / MongoDB $addToSet-functionaliteit gebruiken op een reeks objecten

U moet de $ne . gebruiken telefoniste.

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

Hierdoor wordt het document alleen bijgewerkt als er geen subdocument in de array "article" staat met de waarde van hashtag gelijk aan "foo".

Zoals @BlakesSeven vermeldde in de opmerking

De $addToSet wordt niet meer relevant zodra u test op de aanwezigheid van een van de waarden, dus dit kan net zo goed een $push zijn voor de duidelijkheid van de code. Maar het principe is correct sinds $addToSet werkt op het hele object en niet slechts op een deel ervan.

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


  1. Een geneste array bijwerken met MongoDB

  2. Een overzicht van de Percona MongoDB Kubernetes-operator

  3. Eenvoudige planning van onderhoudsvensters in uw databaseclusters

  4. voeg de velden created_at en updated_at toe aan mangoestschema's