条件中的值应与集合中的数据一致。但是,每次我使用相同的数据创建新的findOneAndUpdate时,它都会在集合中创建新记录。
我的收藏集中的数据如下
{
"_id": {
"$oid": "5bc2e6bea49c6200130e1efe"
},
"email": "c@c.com",
"password": "c",
"createdAt": {
"$date": "2018-10-14T06:48:30.159Z"
},
"signedToEvents": [
{
"eventSignedDate": {
"$date": "2018-10-15T18:42:37.879Z"
},
"_id": {
"$oid": "5bc4e0717287250013b66907"
},
"event": {
"$oid": "5b8ed4effb6fc013752b5e1e"
},
"isActive": true
}
],
"__v": 0
}
我的呼叫如下:
User.findOneAndUpdate({_id : req.userId, "signedToEvents.event" : mongoose.Types.ObjectId(event._id)}, { $push : { 'signedToEvents': { event: event._id, isActive: true } } }, {upsert:true})
.exec()
.then(docs =>{
res.status(200).send(docs);
})
请指向正确的方向