簡體   English   中英

Meteor.js 只更新一個參數而不是整個集合

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM