繁体   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