首页 > 解决方案 > Mongoid:为 embeds_one 抑制 _id?

问题描述

我正在寻找一种方法来抑制 embeds_one 关联的子类中 _id 字段的生成,但找不到方法。

有谁知道如何做到这一点?

如果为子类创建 embeds_one 关联,则不需要 _id 字段,因为父类中只会嵌入一个子类。

Mongoid 7.0,MongoDB 4.2。

在 NodeJS/Javascript 生态系统中使用 Mongoose 时,这很容易。您只需指定

{ _id: false }

在猫鼬模式的选项中。在 Ruby on Rails 世界中为 Mongoid 寻找类似的东西。

谢谢!

标签: mongoid

解决方案


Mongoid 内部定义了每个文档上的 _id 字段具有默认值,但您可以重新定义该字段以不具有默认值。

class Foo
  include Mongoid::Document

  embeds_one :bar
end

class Bar
  include Mongoid::Document

  embedded_in :foo

  field :_id, type: String
end

推荐阅读