我有一个像这样的基本文档:
_id: fm393nrr,
name: 'My Event'
members: [{
user: 94iru134nf
attending: 1
}, {
user: er9fr94,
attending: 0
}]
如何根据用户
更改成员出席
?
例如,类似:
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。代码非常偏离,但这是一个长期的尝试。以前从未使用过子文档/嵌入文档。
最佳答案
处理嵌套对象时添加双引号。 $
等于匹配的数组索引。
试试这个:
Event.findOneAndUpdate({
_id: eventToFind,
"members.user":userToFind,
}, {
$set: {"members.$.attending": {.....}}
})
关于node.js - 如何使用 Mongoose/MongoDB 查找集合的子文档并更新它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37559538/