Mongoid:embeds_one 通过?

Mongoid: embeds_one through?

我有一个 Model1,它嵌入了一个 Model2,它嵌入了一个 Model3。是否可以通过 Model3 属性获取 Model1 实例?

是的,这是可能的。您需要了解 embeds_one 的工作原理。当你说:

embeds_one :model2

Mongoid 做了一些简单的事情:

  1. 添加一个名为 model2Hash 字段。
  2. 将嵌入 Hash 的内容包装在 Mongoid 中,使其行为与任何其他文档一样。
  3. 安排在嵌入的 Hash 中包含通常的 _id 字段以及 field 指定的任何其他字段。

所以您实际上只是在处理一堆嵌套的哈希,并且像查询任何其他嵌入式哈希一样查询嵌入式文档:

Model1.where('model2.model3.some_field' => 11)