我有通过对象ID引用用户模型的电影模型。 用户可以添加或从参与列表中删除自己,我试图使用mode.findOneAndUpdate来实现它。 我读过,我应该添加$设置现有参加用户不会被删除,但即使用$设置时,用户添加自己所有的现有用户都将被删除,现在这个用户是唯一的名单上。在不删除现有值的情况下更新文档
下面的代码:
电影模式
{
"_id" : ObjectId("fhdfdca5e1b94fafadhfg1"),
"date" : ISODate("2016-10-05T13:56:43.939Z"),
"attending" : [
ObjectId("fhdf6d0e4501f294a6dgd2")
],
"__v" : 0
}
这里是我的findandupdate:
...
.findOneAndUpdate({_id:req.body.movieId}, {$set:{attending:req.body.imAttending}}, {upsert:true})
如何,我只是一个项目添加到我的出席名单?
TL;如果你不介意在你的名单重复或$ addToSet为唯一的值DR
使用$推不设置$。请参阅下面的答案和评论。
太棒了!我肯定这就是我所寻找的,因为$集合似乎没有工作,我怀疑还有另外一个数组运算符。所有运营商的名单在哪里? –
@ S.Schenk查看[this list](https://docs.mongodb.com/manual/reference/operator/update/#id1)获取更新操作符。全球运营商名单从[here]开始(https://docs.mongodb.com/manual/reference/operator/)。 – robertklep
我注意到,即使添加了相同的用户,它仍然会将相同的用户添加到列表中。我试图阻止在我参加的参考清单上的独特权利,但这并不奏效。任何线索? –