尽管id为null

时间:2018-04-24 08:47:29

标签: ruby-on-rails mongodb mongoid

我的数据库中有一些记录为null _id,但是mongoid模型返回记录的已填充,不存在_id

MyModel.where('deleted_at' => { '$exists' => false }).first
#=> #<MyModel _id: 581208bcfca2f42fb9c9faa0...

但是当我在mongo客户端中搜索此模型时:

>db.my_model.find({deleted_at: null})[0]
{
  "_id": null,
  ....
}

当我尝试在rails控制台中找到此记录时:

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

这个案子有什么解释吗?

1 个答案:

答案 0 :(得分:1)

_id字段是每个文档的主键。它名为_id,也可以通过id访问。从Mongo Code Source开始,您可以在内部看到别名。

您也可以在Documents Fields docs

中找到此信息

Mongo建议使用_id字段:BSON and ObjectID docs