我的数据库中有一些记录为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
这个案子有什么解释吗?
答案 0 :(得分:1)
_id
字段是每个文档的主键。它名为_id
,也可以通过id
访问。从Mongo Code Source开始,您可以在内部看到别名。
您也可以在Documents Fields docs。
中找到此信息 Mongo建议使用_id
字段:BSON and ObjectID docs