我有一个像这样的基本文件:
_id: fm393nrr,
name: 'My Event'
members: [{
user: 94iru134nf
attending: 1
}, {
user: er9fr94,
attending: 0
}]
如何根据attending
?
user
例如:
var eventToFind = 'fm393nrr'; //usually retrieved by req.params
var userToFind = 'er9fr94'; //usually retrieved by req.body.user
Event.findOneAndUpdate({
_id: eventToFind
}, {
$set: {members.attending: {.....}}
}
).exec(function(){....});
在上面,我试图将er9fr94
的成员设置为attending
为1.代码非常关闭,但这是一次远景尝试。以前从未使用过子文档/嵌入式文档。
答案 0 :(得分:1)
处理嵌套对象时添加双引号。 $
变得等于匹配的数组索引。
试试这个:
Event.findOneAndUpdate({
_id: eventToFind,
"members.user":userToFind,
}, {
$set: {"members.$.attending": {.....}}
})