如何find一个集合的子文档,并使用Mongoose / MongoDB进行更新?

我有一个像这样的基本文件:

_id: fm393nrr, name: 'My Event' members: [{ user: 94iru134nf attending: 1 }, { user: er9fr94, attending: 0 }] 

我将如何根据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.代码是非常closures的,但是是一个长时间的尝试。 之前从未使用过子文档/embedded式文档。

处理嵌套对象时添加双引号。 $变成等于匹配的数组索引。

尝试这个:

 Event.findOneAndUpdate({ _id: eventToFind, "members.user":userToFind, }, { $set: {"members.$.attending": {.....}} })