代码之家  ›  专栏  ›  技术社区  ›  Sanchez333

将值推送到嵌套对象内的数组

  •  0
  • Sanchez333  · 技术社区  · 3 年前

    我已经为此寻找了几个小时的答案——似乎有一些类似的问题没有有效的答案——所以如果你能帮我解决它,那么你就可以拥有我的车、我的房子和我的第一个孩子——无论你想要什么!

    当我为下面的模型创建记录时,我需要一种向嵌套数组插入值的方法:

    const recordSchema = new Schema (
        {record: 
            [
                {
                    eventDate: Date,
                game: { 
                    type: Schema.Types.ObjectId
                    ,ref: "Game"
                },
                winner: {
                    type: Schema.Types.ObjectId
                    ,ref: "Member"
                },
                particpants: [
                    {
                        type: Schema.Types.ObjectId
                        ,ref: "Member"
                    }
                ]
                },
                {
                    timestamps: true, 
                }
            ],         
        }    
    )
    

    创建记录适用于所有领域,但参与者除外,因为参与者仍然不受欢迎:

    Record.create({record: { game: game, winner: winner, participants: participants }})
    

    我尝试了几种方法来尝试获取嵌套数组,并(例如)在创建后进行更新,但到目前为止,我还没有实现。请记住,这需要以编程方式创建——我不能硬编码任何值。

    如果你能帮我的话,非常非常感谢。

    编辑:添加正在输入的数据作为注释,这将非常有用: 在创建之前记录变量的控制台将返回以下内容:游戏:“6220CA4D8179D6685BC05B7”,赢家:“6225ed9f21a3b31c86098b8d”,参与者:[“6225ec458e34373cf7337d68”,“6225ed9f21a3b31c86098b8d”]

    0 回复  |  直到 3 年前
        1
  •  1
  •   Shivam    3 年前

    正如你所看到的,你的模式中有一个输入错误 particpants 但在你的 .create() 你路过 participants .

    你错过了一个 i 之后 c 在模式中。

    participants: [{ type: Schema.Types.ObjectId, ref: "Member" }]
    
    推荐文章