Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js findOneAndUpdate-更新数组中具有特定属性的第一个对象_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js findOneAndUpdate-更新数组中具有特定属性的第一个对象

Node.js findOneAndUpdate-更新数组中具有特定属性的第一个对象,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我有一个具有属性的对象。这包括具有自己属性的其他对象数组 Lobby: --> "a": "b" --> "c": "d" --> Players:[ --> 0 --> "x": "23" --> "status": "ready" --> 1 --> "x": "54" --> "status": "op

我有一个具有属性的对象。这包括具有自己属性的其他对象数组

Lobby:
  --> "a": "b"
  --> "c": "d"
  --> Players:[
         --> 0
           --> "x": "23"
           --> "status": "ready"
         --> 1
           --> "x": "54"
           --> "status": "open"
         --> 2
           --> "x": "16"
           --> "status": "open"
如何将第一个具有“状态”:“打开”(在本例中为1)的播放器对象更新为新对象

例如:

player = {
            x: "125",
            status: 'joined'
         };

我设法找到了一个有效的解决办法

Game.findOneAndUpdate({'a': 'b', 'Players.status': 'open'}, { $set : { 'Players.$': player} },
function (err, doc) {
    if (err) {
        console.log(err);
    } else {
        // Do stuff
    }
});

(使用$op)在MongoShell db.collection.update({u d:x,'player.status':'open'},{$set:{player.*:{//your new player}}}}@Disposer中,我将如何在Mongoose中做到这一点?