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.