Mongodb 更新记录,然后在iron router功能中显示
我已使用meteor设置了以下铁路由器: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}); } }); 请注
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