findOneAndUpdate 导致重复问题

Sye*_*med 2 arrays mongoose mongodb array-push node.js

我在猫鼬的 findOneAndUpdate 中遇到问题。情况是我正在通过查找来更新文档。查询如下:

UserModel.findOneAndUpdate({
individualId: 'some id'
}, {
$push: {
supporterOf: 'some string'
}
})
Run Code Online (Sandbox Code Playgroud)

'supporterOf' 是 UserModel 的引用,其类型是 'ObjectId'。

我在这里面临的问题是,“某个字符串”在文档中的“supporterOf”下被推送了两次。

谁能告诉我如何将数组元素推入文档中?

nit*_*416 6

我遇到了同样的问题,解决方案是。

我一直在等待,如下所示。

 **await** schema.findOneAndUpdate(queryParms, {
                "$push": {
                    "array1": arrayDetails,
                    "array2": array2Details
                }
            }, {
                "upsert": true,
                "new": true
            },
            function (error, updateResponse) {
                if (error) {
                    throw new Error (error);
                } else {
                    // do something with updateResponse;
                }
            });
Run Code Online (Sandbox Code Playgroud)

简单地删除等待帮助我解决了这个问题。需要找到根本原因。欢迎任何可供参考的指针。

  • “混合承诺和回调可能会导致数组中出现重复条目​​”,直接来自 https://mongoosejs.com/docs/queries.html (5认同)