猫鼬findOneAndUpdate每次都会创建新记录-同样是在满足条件时?

时间:2018-10-15 18:53:39

标签: mongodb mongoose

条件中的值应与集合中的数据一致。但是,每次我使用相同的数据创建新的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);
    })

请指向正确的方向

0 个答案:

没有答案