在加载父文档后,查询Mongoid嵌入文档是否会访问数据库服务器

时间:2013-12-09 16:22:35

标签: ruby-on-rails ruby mongoid

Mongoid允许用find_bywhere等方法查询引用和嵌入文档。

假设我有一个模型Project,它嵌入了许多Tasks。当我想要找到特定任务时,我目前正在执行以下操作:

project = Project.find(...)
task = project.tasks.find_by(:some_field => 'Some Value')

我的问题是,上面对嵌入式任务的find_by查询是否向Mongo数据库发出另一个查询,或者它是否认识到任务嵌入在给定项目中而是在本地过滤任务?

谢谢

1 个答案:

答案 0 :(得分:2)

不,它不会再做另一个查询。

嵌入式文档基本上是非规范化的。 http://docs.mongodb.org/manual/core/data-model-design/#data-modeling-embedding

如果您有兴趣亲自查看查询,可以将其打开: How can I see raw mongoDB queries with Mongoid