Mongodb 更新记录,然后在iron router功能中显示

Mongodb 更新记录,然后在iron router功能中显示,mongodb,meteor,iron-router,Mongodb,Meteor,Iron Router,我已使用meteor设置了以下铁路由器: Router.map(function() { this.route('decoded', { path: '/id/:id', data: function() { message.update({_id: this.params.id._id}, {$set: {read: "1"}}); return message.findOne({id: this.params.id}); } }); 请注

我已使用meteor设置了以下铁路由器:

Router.map(function() {
  this.route('decoded', {
    path: '/id/:id',
    data: function() {
      message.update({_id: this.params.id._id}, {$set: {read: "1"}});
      return message.findOne({id: this.params.id});
    }
});
请注意,我存储的id与mongodb生成的_id不同。 在我的模板中,我有
{{subject}}

插入时,
read
的值为0,当他们访问url/id/:id时,我希望
read
的值更改为1,然后显示主题


当我运行它时,我没有得到任何错误或任何东西。当我通过运行
message.findOne({id:“9913b0cc-fc79-495a-a5d5-55c8c22d7bb3”)在控制台中手动输入一个id(而不是_id)时,“this.params.id.”的值不是未定义的吗
那么,我在原始代码中使用的不是仍然有效吗?如果我没有弄错的话,在update语句中,您正试图从路由的id参数(一个字符串)中获取_id。这意味着_id未定义,update语句将不起任何作用。要修复它,首先使用id参数查找消息,获取您在评论中提到的_id,然后使用它更新消息。不过,这不是我正在做的吗?我通过this.params.id查找id,然后通过将.\u id放在其末尾获取_id,然后使用它尝试更新文档。您通过使用this.params.id获取URL中的id字符串,而不是集合中的对象。因此,您需要首先获取集合中的对象以获取其_id