【问题标题】:Mongoid: Suppressing _id for embeds_one?Mongoid:为 embeds_one 抑制 _id?
【发布时间】:2019-10-13 14:36:18
【问题描述】:

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

有人知道怎么做吗?

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

Mongoid 7.0,MongoDB 4.2。

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

{ _id: false }

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

谢谢!

【问题讨论】:

    标签: mongoid


    【解决方案1】:

    Mongoid 内部为每个文档定义了 _id 字段并带有默认值,但您可以重新定义该字段以不设置默认值。

    class Foo
      include Mongoid::Document
    
      embeds_one :bar
    end
    
    class Bar
      include Mongoid::Document
    
      embedded_in :foo
    
      field :_id, type: String
    end
    

    【讨论】:

    • 谢谢....但我想做的是消除 embeds_one 子类的 _id 字段,因为它是无关的(如果我们需要一个父 _id 就足够了),因为只有一个它是嵌入式的。我不想将它重新定义为另一种类型。
    • 不要将字段定义的存在与所述字段中数据的存在/存储混淆。
    猜你喜欢
    • 2014-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-19
    • 1970-01-01
    • 2013-12-27
    相关资源
    最近更新 更多