[英]Meteor.js update only one parameter instead of whole collection
我正在嘗試使用以下代碼將消息標記為已讀:
Template.FullMessage.onRendered(function () {
var id = FlowRouter.getParam('id');
Messages.update(id, {$set: {readed: true} });
});
集合是:
"_id": "YMxYn9NodPeZqFP83",
"whatAbout": "adsfadsfasdf",
"message": "sdfadsfadfadsfasdfasdf",
"recipientId": "9ewiF8JTNp77Pmijw",
"author": "9ewiF8JTNp77Pmijw",
"createdAt": "2016-05-09T08:37:52.282Z",
"owner": "seofilms",
"readed": false
}
我預計列“readed”:“false”將被替換為“readed”:true,
但取而代之的是,這里的一切都在改變,包括所有者。 因此,例如,如果我將使用用戶測試打開消息,我也會更改此消息的所有者。
為什么會發生?
是否可以防止發送整個對象並僅使用 ID 更改它?
謝謝你的任何想法。
嘗試這個:
Messages.update({_id: id}, {$set: {readed: true} });
正如您已經在做的那樣,它也應該只適用於id
。 是否有其他代碼寫入同一個集合? 嘗試在控制台中運行它並檢查它是否仍在更新所有屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.