Mongoid 中 embeds_one 的目的是什么?

per*_*nce 5 ruby-on-rails mongoid ruby-on-rails-3

我理解使用的概念embeds_many,但是embeds_one特别是当嵌入文档中只有一个字段(如 mongoid.org 上的 1-N 嵌入文档示例所示)时,其目的是什么?在父文档中创建一个字段不是更好吗?

mongoid.org 上的示例:

class Band
  include Mongoid::Document
  embeds_one :label
end


class Label
  include Mongoid::Document
  field :name, type: String
  embedded_in :band
end
Run Code Online (Sandbox Code Playgroud)

abh*_*has 1

在示例中,他们给出了一个字段示例,仅用于显示定义结构。您可以在嵌入文档中引入多个字段。

当嵌入文档中有多个字段您不想存储在主文档中时,使用 embeds_one 。当某些字段不是所有文档都必须具有时,我们不会在主文档中引入,因为这会使文档变得沉重。相反,我们引入了嵌入式文档,您可以根据主文档的要求创建该文档。