Mongoid:embeds_one 通过?
Mongoid: embeds_one through?
我有一个 Model1
,它嵌入了一个 Model2
,它嵌入了一个 Model3
。是否可以通过 Model3
属性获取 Model1
实例?
是的,这是可能的。您需要了解 embeds_one
的工作原理。当你说:
embeds_one :model2
Mongoid 做了一些简单的事情:
- 添加一个名为
model2
的 Hash
字段。
- 将嵌入
Hash
的内容包装在 Mongoid 中,使其行为与任何其他文档一样。
- 安排在嵌入的
Hash
中包含通常的 _id
字段以及 field
指定的任何其他字段。
所以您实际上只是在处理一堆嵌套的哈希,并且像查询任何其他嵌入式哈希一样查询嵌入式文档:
Model1.where('model2.model3.some_field' => 11)
我有一个 Model1
,它嵌入了一个 Model2
,它嵌入了一个 Model3
。是否可以通过 Model3
属性获取 Model1
实例?
是的,这是可能的。您需要了解 embeds_one
的工作原理。当你说:
embeds_one :model2
Mongoid 做了一些简单的事情:
- 添加一个名为
model2
的Hash
字段。 - 将嵌入
Hash
的内容包装在 Mongoid 中,使其行为与任何其他文档一样。 - 安排在嵌入的
Hash
中包含通常的_id
字段以及field
指定的任何其他字段。
所以您实际上只是在处理一堆嵌套的哈希,并且像查询任何其他嵌入式哈希一样查询嵌入式文档:
Model1.where('model2.model3.some_field' => 11)