Seperti yang ditunjukkan kesalahan, pada klien Anda hanya dapat melakukan pembaruan dengan _id
sederhana pemilih. Saya sarankan menggunakan metode dengan sedikit modifikasi pada kode Anda:
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}}
);
}
});
Di sini kita menggunakan $
operator untuk memperbarui dokumen tertanam tertentu. Lihat dokumen untuk detail selengkapnya.