Mongo::错误::操作失败未知修饰符:更新模型(mongoid,角度,轨道)时$pushAll



我在前端使用 angular-8,在后端使用 Mongoid(6.1( 使用 Rails(5.2(。

我有一个用于模型Event的多级嵌套表单,它反过来accepts_nested_attributes_forTicketaccepts_nested_attributes_forChannel.

每当我尝试更新任何事件并将新Channel添加到任何Ticket事件时。我收到此错误:

Mongo::错误::

操作失败(未知修饰符:$pushAll。预期有效的更新修饰符或管道样式更新指定为数组 (9((:

我已经查找并在此处发现,$pushAll支持现已弃用,我们必须默认打开UsePushEach。

但是我不知道我应该在哪里通过Rails中的默认设置配置这个UsePushEach

任何帮助将不胜感激。谢谢!

请注意,您指的是Mongoose的Github问题,这是一个节点ODM,并且您正在尝试将其设置应用于Rails。它们完全不同,它们的问题和解决方案彼此不适用。

在Mongoid中,pushAll自Mongoid 6.3以来被删除(参见MONGOID-4499(。您看到此错误是因为您使用的是旧版本的 Mongoid。

升级到最新的Mongoid(当前为7.0(应该可以消除此错误。

使用$push,您可以同时使用单值和值数组

两者都有效

{"$push":{"列1":"值"}}//将单个值推送到 column1 数组类型

{"$push":{"column1":[value]}}//将整个数组附加到 column1 数组类型(内部 mongodb 将使用 $each(

最新更新