类:Mongo::Collection::View

继承:
对象
  • 对象
显示全部
扩展方式:
可转发
包括:
可枚举、可解释不可变、可迭代可读可写
定义于:
build/Ruby-driver-v 2.19 /lib/mongo/collection/view.rb ,
build/Ruby-driver-v 2.19 /lib/mongo/collection/view/iterable.rb,
build/Ruby-driver-v 2.19 /lib/mongo/collection/view/可读.rb,
build/Ruby-driver-v 2.19 /lib/mongo/collection/view/writable.rb,
build/Ruby-driver-v 2 。 19 /lib/mongo/collection/view/immutable.rb,
build/Ruby-driver-v 2 . 19 /lib/mongo/collection/view/map_reduce.rb,
build/Ruby-driver-v 2 . 19 /lib/mongo/collection/view/aggregation.rb,
build/Ruby-driver-v 2 . 19 /lib/mongo/collection/view/explainable.rb,
build/Ruby-driver-v 2 . 19 /lib/mongo/collection/view/change_stream.rb,
build/Ruby-driver-v 2 . 19 /lib/mongo/collection/view/builder/map_reduce.rb,
build/Ruby-driver-v 2 。 19 /lib/mongo/collection/view/builder/aggregation.rb,
build/Ruby-driver-v 2 。 19 /lib/mongo/collection/view/change_stream/retryable.rb

Overview

注意:

View API 是半公开的。

生成文档结果设立的查询和选项的表示形式。

可以使用助手来修改View 。 助手可以链式运行,因为如果提供了参数,每个助手都会返回View

调用“终结器”时,会将查询消息发送到服务器。 例如,当在View上调用 #each 时,会创建一个游标对象,然后该对象会将查询发送到服务器。

View不是由用户直接创建的。 相反, View会在调用 CRUD 操作时创建View ,并将其返回给用户进行交互。

由于:

  • 2.0.0

在命名空间下定义

模块: BuilderExplainableImmutableIterableReadableWritable类: AggregationChangeStreamMapReduce

常量摘要

Writable中包含的常量

Writable::ARRAY_FILTERS

可解释性中包含的常量

explainable::ALL_PLANS_EXECUTION 、explainable ::EXECUTION_STATS 、explainable ::QUERY_PLANNER

实例属性摘要折叠

Iterable包含的属性

#cursor

包含在Immutable中的属性

#options

实例方法摘要折叠

Writable中包含的方法

#delete_many 、# delete_one 、# find_one_and_delete 、# find_one_and_replace#find_one_and_update 、#replace_one、 #update_many# update_one

方法包含在可解释

#explain

Readable中包含的方法

#aggregate、# allow_disk_use#allow_partial_results # await_data 、 #batch_size#comment 、#count、#count_documents、#cursor_type、#distinct、#estimated_document_count、# hint 、# limit# map_reduce# max_await_time_ms 、 # max_scan# max_time_ms#max_value#min_value#modifiers#no_cursor_timeout#projection#read#read_concern#read_preference#return_key#show_disk_loc#skip#snapshot#sort

Iterable包含的方法

#close_query , #each

构造函数详情

#initialize (集合, 过滤 = {}, options = {}) ⇒查看

创建一个新的View

例子:

查找名为 Emily 的所有用户。

View.new(collection, {:name => 'Emily'})

查找所有名为 Emily 跳过5并返回10的用户。

View.new(collection, {:name => 'Emily'}, :skip => 5, :limit => 10)

使用特定读取偏好(read preference)查找名为 Emily 的所有用户。

View.new(collection, {:name => 'Emily'}, :read => :secondary_preferred)

参数:

  • 集合 ( Collection )

    要查询的Collection

  • 筛选器 哈希 (默认为: {}

    查询筛选器。

  • 选项 哈希 (默认为: {}

    其他查询选项。

选项哈希 ( options ):

  • :allow_disk_use ( true , false )

    设置为 true 时,服务器可以在执行查找操作时将临时数据写入磁盘。 此选项仅在 MongoDB Server 4.4 及更高版本上可用。

  • :batch_size 整数

    MongoDB每次响应中要返回的文档数量。

  • :collation 哈希

    要使用的排序规则。

  • :comment string

    将注释与查询关联。

  • :explain 哈希

    使用提供的解释选项(已知选项包括 :verbose 和 :verbosity)执行解释,而不是查找。

  • :hint 哈希

    覆盖默认索引选择并强制 MongoDB 使用特定索引进行查询。

  • :limit 整数

    要返回的最大文档数。

  • :max_scan 整数

    将查询限制为仅扫描指定数量的文档。 用于防止查询运行时间过长。 自MongoDB服务器版本4.0起已弃用。

  • :projection 哈希

    要在返回的文档中包含或排除的字段。

  • :read 哈希

    用于查询的读取偏好(read preference)。 如果未提供任何内容,则使用集合的默认读取偏好(read preference)。

  • :read_concern 哈希

    用于查询的读关注。

  • :show_disk_loc ( true | false )

    将磁盘位置信息作为每个文档中的字段返回。

  • :skip 整数

    要跳过的文档数量。

  • :快照 ( true | false )

    防止多次返回一个文档。 自 MongoDB 服务器版本4.0起已弃用。

  • :sort 哈希

    用于对结果进行排序的键和方向对。

由于:

  • 2.0.0



155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
# File 'build/Ruby-driver-v 2.19 /lib/mongo/collection/view.rb', 第155行

def 初始化(集合, 筛选器 = {}, 选项 = {})
  validate_doc!(筛选器)
  @collection = 集合

  筛选器 = BSON::文档.new(筛选器)
  选项 = BSON::文档.new(选项)

  # 这是用户在过滤和其他修饰符中传递 $ 查询的时间
  # 并排?
  查询 = 筛选器.删除(:$query)
  # 这会使修饰符包含筛选器(如果筛选器不是
  # 通过 $query 给出,但可能是作为顶级键
  # 下游代码会忽略修饰符中的非修饰键吗?
  modifiers = 筛选器.合并(merge)(选项.删除(:modifiers) || {})
  @filter = (查询 || 筛选器).冻结
  @options = 操作::find::生成器::Modifiers.map_driver_options(modifiers).合并!(选项).冻结
end

实例属性详细信息

# collection =" Collection " (只读)

返回要查询的Collection

返回:

由于:

  • 2.0.0



56
57
58
# File 'build/Ruby-driver-v 2.19 /lib/mongo/collection/view.rb', 第56行

def 集合
  @collection
end

# filterHash (readonly)也称为:选择器

返回查询过滤。

返回:

  • (哈希)

    查询筛选器。

由于:

  • 2.0.0



59
60
61
# File 'build/Ruby-driver-v 2.19 /lib/mongo/collection/view.rb', 第59行

def 筛选器
  @filter
end

实例方法详细信息

# == (other) ⇒ true , false也称为: eql?

比较两个View对象。

例子:

将视图与另一个对象进行比较。

view == other

返回:

  • ( true , false )

    如果两个View的集合、 过滤和 options 匹配,则相等。

由于:

  • 2.0.0



86
87
88
89
90
91
# File 'build/Ruby-driver-v 2.19 /lib/mongo/collection/view.rb', 第86行

def ==(其他)
  return false 除非 其他.is_a?(查看)
  集合 == 其他.集合 &&
      筛选器 == 其他.筛选器 &&
      选项 == 其他.选项
end

#哈希整数

View的哈希值由集合命名空间、选项哈希和筛选器哈希组成。

例子:

获取哈希值。

view.hash

返回:

  • ( Integer )

    View对象的哈希值。

由于:

  • 2.0.0



103
104
105
# File 'build/Ruby-driver-v 2.19 /lib/mongo/collection/view.rb', 第103行

def 哈希
  [ 集合.namespace, 选项.哈希, 筛选器.哈希 ].哈希
end

#检查string

获取 View 的人类可读string表示形式。

例子:

进行检查。

view.inspect

返回:

  • ( string )

    View 实例的string表示形式。

由于:

  • 2.0.0



181
182
183
184
# File 'build/Ruby-driver-v 2.19 /lib/mongo/collection/view.rb', 第181行

def 检查
  " #<Mongo::Collection::View:0 x #{ object_id} 命名空间 =' #{ 集合 .namespace} ' " +
      " @filter = #{ 过滤 . to_s } @options= #{ options . to_s } > "
end

# write_concernMongo::WriteConcern

获取此View上的写关注(write concern)。

例子:

获取写关注(write concern)。

view.write_concern

返回:

由于:

  • 2.0.0



194
195
196
# File 'build/Ruby-driver-v 2.19 /lib/mongo/collection/view.rb', 第194行

def write_concern
  writeConcern.获取(选项[:write_concern] || 选项[:write] || 集合.write_concern)
end