Ruby on rails Mongoid返回id为的模型,尽管id为null

Ruby on rails Mongoid返回id为的模型,尽管id为null,ruby-on-rails,mongodb,mongoid,Ruby On Rails,Mongodb,Mongoid,我的数据库中有空\u id的记录,但mongoid模型返回的记录中已填充且不存在\u id: MyModel.where('deleted_at' => { '$exists' => false }).first #=> #<MyModel _id: 581208bcfca2f42fb9c9faa0... 当我尝试在rails控制台中查找此记录时: MyModel.where(id: "581208bcfca2f42fb9c9faa0").count => 0

我的数据库中有空
\u id
的记录,但mongoid模型返回的记录中已填充且不存在
\u id

MyModel.where('deleted_at' => { '$exists' => false }).first
#=> #<MyModel _id: 581208bcfca2f42fb9c9faa0...
当我尝试在rails控制台中查找此记录时:

MyModel.where(id: "581208bcfca2f42fb9c9faa0").count
=> 0

对这种情况有什么解释吗?

每个文档的主键都是
\u id
字段。它被称为
\u id
,也可以通过
id
访问。从中可以在内部看到别名

您也可以在中找到此信息

Mongo建议使用
\u id
字段:

MyModel.where(id: "581208bcfca2f42fb9c9faa0").count
=> 0