MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie inkrementiere ich ein Feld in Mongodb?

Wie der Fehler andeutet, können Sie auf dem Client nur mit einer einfachen _id ein Update durchführen Wähler. Ich würde empfehlen, eine Methode mit einer leichten Änderung Ihres Codes zu verwenden:

Meteor.methods({
  incClicks: function(id, news) {
    check(id, String);
    check(news, Match.ObjectIncluding({link: String}));

    News.update(
      {_id: id, 'items.link': news.link},
      {$inc: {'items.$.clicks': 1}}
    );
  }
});

Hier verwenden wir den $ Operator, um das spezifische eingebettete Dokument zu aktualisieren. Weitere Einzelheiten finden Sie in der Dokumentation.