Meteor.js只更新一个参数而不是整个集合

时间:2016-05-09 08:43:37

标签: javascript mongodb meteor

我尝试使用以下代码将邮件标记为已知:

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更改它?

感谢您的任何想法。

1 个答案:

答案 0 :(得分:1)

试试这个:

Messages.update({_id: id}, {$set: {readed: true} });

它应该只与id一起使用,正如您已经在做的那样。是否还有其他代码写入同一个集合?尝试在控制台中运行它并检查它是否仍在更新所有属性。

相关问题