Mongo::Error::OperationFailure: $not needs a regex or a document in rails mongoid

Mongo::Error::OperationFailure: $not needs a regex or a document in rails mongoid

Rails 应用有 Moingoid 7.0.5

class Example
 include Mongoid::Document
 field :name, type: String
end

当我查询 Example.not(name: "xyz").count 时,我得到这个错误:

Mongo::Error::OperationFailure: $not needs a regex or a document (2) (on localhost:27017, modern retry, attempt 1) (on localhost:27017, modern retry, attempt 1)

Mongoid 文档确实说我们也可以这样使用 not 运算符。我确实得到了 Example.where(:name.ne => "xyz").count.

的预期结果

配置中是否有什么导致了这个?

已发布的文档表明它适用于哪个版本(左上角)。当前 Mongoid 版本是 7.2,因此 https://docs.mongodb.com/mongoid/current/tutorials/mongoid-queries/#logical-operations 表明它适用于 7.2。您可以 select 从下拉列表中选择您正在使用的版本。

您询问的 not 行为按照 Mongoid 7.1 的当前文档中描述的方式工作。正如您所发现的,以前版本的 Mongoid 不能像当前描述的那样工作。