MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como incrementar um campo no mongodb?


Como o erro indica, no cliente você só pode realizar uma atualização com um simples _id seletor. Eu recomendaria usar um método com uma pequena modificação no seu código:
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}}
    );
  }
});

Aqui estamos usando o $ operador para atualizar o documento incorporado específico. Veja os documentos para mais detalhes.