MongoDB:如何将由具有数组的对象组成的数组$push到数组

MongoDB:如何将由具有数组的对象组成的数组$push到数组,mongodb,mongoose,Mongodb,Mongoose,这就是我的猫鼬模式- const GameLogSchema = new Schema({ _score: Number, _playerData: { x: Number, y: Number, }, _zoneData: [{ _x: Number, _height: Number }], _pipeData: [{ _x: Number, _randomeHeightTop: Number }],

这就是我的猫鼬模式-

const GameLogSchema = new Schema({      
    _score: Number,
    _playerData: {
        x: Number,
        y: Number,
    },
    _zoneData: [{ _x: Number, _height: Number }],
    _pipeData: [{ _x: Number, _randomeHeightTop: Number }],
    _gap: Number,
});

const PlayerSchema = new Schema({
    /* other fields */

    _gameLogs: {
       type: [[GameLogSchema]],  
    },
}); 
这就是它应该处理的数据的样子-

散布其中一个物体-

如何将具有数组的对象数组推入数组?最好是在nodejs mongoose中


编辑-

我试着做一些类似的事情

我用我的模式尝试了这个-

const PlayerSchema = new Schema({
    /* other fields */

    _gameLogs: [
      {
          _logs: [{ _log: { _score: Number } }],
      },
    ],
}); 
这是我的更新功能-

Player.findOneAndUpdate(
            { \* filter *\ },
            {
                $push: {
                    /* pushing something other, that works */

                    _gameLogs: {
                        '_gameLogs.$._logs': {
                            '_logs.$._log': { '_log.$._score': req.body.gameLogs.score },
                        },
                    },
                },
                $inc: { _totalGamesPlayed: 1, '_gameStreak._gamesPlayed': 1 },
            },
            { safe: true, upsert: true, new: true, minimize: false },
            (err, result) => {
                console.log(result);
            }
        );

它输出一个列表,其中包括
{{u日志:[],[u id:5f4f5979fba2d03c40d4aed7},

这是否回答了您的问题@turivishal naah没有。我的比你发布的有一个额外的层,并且子数组未命名。我试过了。我正在发布我在编辑中所做的。你做错了。再看一下建议的问题,您需要这样做
$push:{''u gameLogs.$.'u logs':{''u log.'u score':req.body.gameLogs.score}
,并且它还需要在该数组的查询部分中设置条件。@turivishal它不起作用。如果我把一个数组放入一个数组中,你的代码可能会工作。但我所做的是把一个数组推到一个数组中,这个数组包含的对象里面也有数组。它类似于-
[{a:[],b:[]},{a:[],b:[]},]
。我试着把它推到一个数组字段中。