我想更新子文档的值,其中消息具有特定的 id 并且用户 id 在收件人数组中。我想用指定的用户 ID 更新匹配对象的值。
当我在 MongoDB CLI 上运行以下查询时,一切正常并且值被更新:
db.getCollection('messages').update({
_id : ObjectId("57d7edb8c497a75a6a7fde60"),
"recipients.userId" : "5789127ae2bcc79326462dbc"
},{
$set : {"recipients.$.read": true}
});
但是当我在 FeathersJS 应用程序中通过 JS 运行以下查询时:
messageService.update({
_id : '57d7edb8c497a75a6a7fde60',
"recipients.userId" : "5789127ae2bcc79326462dbc"
},{
$set: {"recipients.$.read": true}
}).then(function(e) {
console.log(e)
}).catch(function(e) {
console.log(e);
});
我得到错误:
GeneralError:位置运算符未从查询中找到所需的匹配项。未扩展更新:收件人.$.read
我究竟做错了什么?
有没有更好的方法一次更新多条消息?
谢谢!