猫鼬如何将元素推送到数组的架构

时间:2020-09-17 10:57:46

标签: mongodb mongoose

我想要一个包含包含数组的数组的架构,所以我定义了以下架构:

runGroupEntries: [
        [
            {
                type: mongoose.Types.ObjectId,
                ref: 'User',
                require: true
            }
        ]
    ]

我的意图是拥有

runGroupEntries[['userId1', 'userId2', 'userId3'], ['userId4', 'userId5', 'userId6], ...]

我使用以下方法初始化了模式:

for (let i = 0; i < numGroups; ++i) {
    event.runGroupEntries.push(undefined);
}

在MongoDB Atlas中,它显示: initialization

对我来说很好。
我插入元素的方式是

event.runGroupEntries[runGroup].push(userId);

在此示例中,runGroup为0。我期望看到

runGroupEntries: [ [ null, "userId" ], [ null ], [ null ], [ null ], [ null ] ]

但实际结果是:

runGroupEntries: [ [ null, [Array] ], [ null ], [ null ], [ null ], [ null ] ],

1st push result

然后,我尝试将另一个userId推送到event.runGroupEntries [0]。有趣的是,以前的数组现在变成了“ userId”,但是被推送的新元素仍然显示一个数组。

runGroupEntries: [
    [ null, 5f5c1d95e4f678ce190d5624, [Array] ], 

2nd push result

我真的不知道为什么被压入的元素变成了数组。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

这确实是猫鼬中的错误。现在已修复https://github.com/Automattic/mongoose/issues/9429

相关问题