gpt4 book ai didi

javascript - MongoError : Unknown modifier $pushAll when I try to push an userId into an Array field in Node. js

转载 作者:行者123 更新时间:2023-11-30 20:30:02 25 4
gpt4 key购买 nike

当我尝试将 userId 推送到喜欢的数组字段时,出现了 MongoError: Unknown modifier $pushAl 错误:

MongoDB push error

最佳答案

$pushAll 自版本 2.4 后已弃用:

Deprecated since version 2.4: Use the $push operator with $each instead.

您可以/应该升级到更新版本的 Mongoose,即 compatible使用您正在使用的 MongoDB 版本或将 MongoDB 降级到仍支持 $pushAll 的旧版本.我会建议前者。

或者,您可以使用 usePushEach: true定义架构时的选项,如果您使用的是 Mongoose 版本 < 5 :

new mongoose.Schema({ ... }, {
usePushEach: true,
});

您可以在 GitHub 上阅读有关该问题的更多信息:

vkarpov15 commented on 26 Sep 2017

Well that's one problem, MongoDB 3.5 is an unstable dev release and should not be used. $pushAll has been deprecated for a long time so perhaps they got rid of it in 3.5. @mbroadst can you clarify?

We added a usePushEach option to work around this a while back: #4455, that should be a workaround for this issue:

new Schema({ arr: [String] }, { usePushEach: true });

支持usePushEach被丢弃在Mongoose version >= 5 ,所以在这种情况下,您可以使用 Array.prototype.concat() 相反,所以你的旧代码:

selectedHotel.likes.push(userId);

会变成:

selectedHotel.likes = selectedHotel.likes.concat([userId]);

请注意,我正在分配 concat 返回的值返回selectedHotel.likes , 作为 concat不会改变原始数组。

关于javascript - MongoError : Unknown modifier $pushAll when I try to push an userId into an Array field in Node. js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50455054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com