模块:Mongoid::Criteria::Findable
- 包含在:
- Mongoid::Criteria
- 定义于:
- lib/mongoid/criteria/findable.rb
Overview
Mongoid::Criteria 中包含的 Mixin 模块增加了按 ID 查找文档的能力。
实例方法摘要折叠
-
#execute_or_rise (ids, multi) ⇒ 文档 |数组<Document>
执行条件,如果未找到文档,则引发错误。
-
# find (*args) ⇒ 文档 |数组<Document>
在条件中查找与提供的 ID 相匹配的文档。
-
# for_ids (id) ⇒ Criteria
向
Criteria
添加一个条件,指定必须匹配的 ID。 -
# multiple_from_db (ids) ⇒ Array<Document>
从身份映射中获取文档,如果未找到,则访问数据库。
实例方法详细信息
#execute_or_rise (ids, multi) ⇒文档|数组 < Document >
执行条件,如果未找到文档,则引发错误。
23 24 25 26 27 |
# File 'lib/mongoid/criteria/findable.rb', line 23 def 执行或引发(id, 多) 结果 = multiple_from_db(id) check_for_missing_documents!(结果, id) 多 ? 结果 : 结果.first end |
# find (*args) ⇒文档|数组 < Document >
注意:
每个参数都可以是单独的 ID、ID 数组或嵌套数组。 每个数组都将被展平。
在条件中查找与提供的 ID 相匹配的文档。
43 44 45 46 47 |
# File 'lib/mongoid/criteria/findable.rb', line 43 def find(*args) id = prepare_ids_for_find(args) raise_invalid if id.任何?(和:nil?) for_ids(id).执行或引发(id, multi_args?(args)) end |
# for_ids (id) ⇒ Criteria
向Criteria
添加一个条件,指定必须匹配的 ID。
60 61 62 63 64 65 66 67 |
# File 'lib/mongoid/criteria/findable.rb', line 60 def for_ids(id) id = mongoize_id(id) if id.size > 1 发送(id_finder, { _id: { " $in " => id }}) else 发送(id_finder, { _id: id.first }) end end |
#multiple_from_db(ids) ⇒ Array<Document>
从身份映射中获取文档,如果未找到,则访问数据库。
78 79 80 81 82 |
# File 'lib/mongoid/criteria/findable.rb', line 78 def multiple_from_db(id) return 条目 if id = mongoize_id(id) id.空? ? [] : from_database(id) end |