模块:Mongoid::Criteria::Includable
- 包含在:
- Mongoid::Criteria
- 定义于:
- lib/mongoid/criteria/includable.rb
Overview
提供解析(嵌套)包含定义功能的模块。
实例方法摘要折叠
-
#ager_load(*relations) ⇒ Criteria
立即加载使用聚合$lookup 提供的所有关联。
-
#includes (*relations) ⇒ Criteria
立即加载所有提供的关联。
-
#包含⇒ Array<Mongoid::Association::Relatable>
获取要执行的预先加载条件列表。
-
#includes = (value) ⇒ Array<Mongoid::Association::Relatable>
设置条件的包含内容。
-
#use_lookup? ⇒ true | false
返回是否使用 $lookup聚合进行预先加载。
实例方法详细信息
#ager_load(*relations) ⇒ Criteria
立即加载使用聚合$lookup 提供的所有关联。行为应与 #includes 相同。
41 42 43 44 45 |
# File 'lib/mongoid/criteria/includable.rb', line 41 def ager_load(*关系) extract_includes_list(klass, nil, true, *关系) @use_lookup = ! 克隆 end |
#includes (*relations) ⇒ Criteria
注意:
这也适用于通过 belongs_to 引用另一个集合的嵌入式关联。
注意:
预先加载会将所有文档都加载到内存中,因此可以实现性能提升的最佳平衡点。 内部基准测试显示,在100 k 个文档左右,预先加载会变慢,但这自然取决于特定的应用程序。
立即加载所有提供的关联。 将根据 ID 的额外查询将所有 ID 匹配的文档加载到身份映射中。
26 27 28 29 |
# File 'lib/mongoid/criteria/includable.rb', line 26 def 包括(*关系) extract_includes_list(klass, nil, false, *关系) 克隆 end |
#包含⇒数组< Mongoid::Association::Relatable >
获取要执行的预先加载条件列表。
57 58 59 |
# File 'lib/mongoid/criteria/includable.rb', line 57 def 包含 @inclusions ||= [] end |
#includes = (value) ⇒ Array< Mongoid::Association::Relatable >
设置条件的包含内容。
66 67 68 |
# File 'lib/mongoid/criteria/includable.rb', line 66 def 包含项=(值) @inclusions = 值 end |
#use_lookup? ⇒ true | false
返回是否使用 $lookup聚合进行预先加载。
50 51 52 |
# File 'lib/mongoid/criteria/includable.rb', line 50 def use_lookup? !!@use_lookup end |