代码之家  ›  专栏  ›  技术社区  ›  K N

Mongoose findOneAndUpdate每次都会创建新的记录-也是在满足条件时?

  •  0
  • K N  · 技术社区  · 8 年前

    条件中的值应与集合中的数据一致。但是,每次我使用相同的数据创建一个新的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 回复  |  直到 8 年前