类:Mongo::Collection::View::Aggregation

继承:
对象
  • 对象
显示全部
扩展方式:
可转发
包括:
Enumerable、 explainableImmutableIterableLoggableRetryable
定义于:
build/Ruby-driver-v 2.19 /lib/mongo/collection/view/aggregation.rb

Overview

在集合视图上提供有关聚合管道的行为。

由于:

  • 2.0.0

直接已知子类

变更流

常量摘要折叠

REROUTE =
已弃用。

重新路由消息。

由于:

  • 2.1.0

'将聚合操作重新路由到主服务器。 '.冻结

Loggable中包含的常量

Loggable::PREFIX

可解释性中包含的常量

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

实例属性摘要折叠

Iterable包含的属性

#cursor

包含在Immutable中的属性

#options

实例方法摘要折叠

Retryable 中包含的方法

#read_worker#select_server#write_worker

Loggable中包含的方法

#log_debug#log_error#log_ Fatal#log_info#log_warn#logger

Iterable包含的方法

#close_query , #each

构造函数详情

#initialize (view, pipeline, options = {}) ⇒聚合

为所提供的集合视图、管道和选项初始化聚合。

例子:

创建新的聚合视图。

Aggregation.view.new(view, pipeline)

参数:

  • 查看 ( Collection::View )

    集合视图。

  • 管道 ( Array<Hash> )

    操作管道。

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

    聚合选项。

选项哈希 ( options ):

  • :allow_disk_use ( true , false )

    如果在聚合期间允许使用磁盘,则设置为 true。

  • :batch_size 整数

    批次中要返回的文档数量。

  • :bypass_document_validation ( true , false )

    是否跳过文档级验证。

  • :collation 哈希

    要使用的排序规则。

  • :comment 对象

    用户提供的待附加到该命令的注释。

  • :hint string

    用于该聚合的索引。

  • :let 哈希

    映射要在管道中使用的变量。 有关详细信息,请参阅服务器文档。

  • :max_time_ms 整数

    允许聚合运行的最长时间(以毫秒为单位)。

  • :use_cursor ( true , false )

    指示该命令是否将请求服务器使用游标提供结果。 请注意,从服务器版本3.6开始,聚合始终使用游标提供结果,因此该选项无效。

  • :session 会话

    要使用的会话。

由于:

  • 2.0.0



97
98
99
100
101
102
103
104
# File 'build/Ruby-driver-v 2.19 /lib/mongo/collection/view/aggregation.rb', 第97行

def 初始化(查看, 管道, 选项 = {})
  @view = 查看
  管道 = 管道.dup
  除非 mongo.broken_view_aggregate || 查看.筛选器.空?
    管道.unshift(:$match => 查看.筛选器)
  end
  @options = BSON::文档.new(选项).冻结
end

实例属性详细信息

# 管道Array<Hash> (只读)

返回 pipeline 聚合管道。

返回:

  • ( Array<Hash> )

    pipeline 聚合管道。

由于:

  • 2.0.0



37
38
39
# File 'build/Ruby-driver-v 2.19 /lib/mongo/collection/view/aggregation.rb', 第37行

def 管道
  管道
end

# view视图(只读)

返回视图集合视图。

返回:

  • ( View )

    view集合视图。

由于:

  • 2.0.0



35
36
37
# File 'build/Ruby-driver-v 2.19 /lib/mongo/collection/view/aggregation.rb', 第35行

def 查看
  @view
end

实例方法详细信息

# allow_disk_use (value = nil) ⇒ true , ...

如果在聚合期间允许使用磁盘,则设置为 true。

例子:

设置磁盘使用情况标志。

aggregation.allow_disk_use(true)

参数:

  • ( true , false ) (默认为: nil

    标志值。

返回:

  • ( true , false , Aggregation )

    如果设置了值,则为聚合;如果用作 getter,则为值。

由于:

  • 2.0.0



62
63
64
# File 'build/Ruby-driver-v 2.19 /lib/mongo/collection/view/aggregation.rb', 第62行

def allow_disk_use( = nil)
  配置(:allow_disk_use, )
end

# describe哈希

获取聚合的解释计划。

例子:

获取聚合的解释计划。

aggregation.explain

返回:

  • (哈希)

    解释计划。

由于:

  • 2.0.0



114
115
116
# File 'build/Ruby-driver-v 2.19 /lib/mongo/collection/view/aggregation.rb', 第114行

def 解释
  self.class.new(查看, 管道, 选项.合并(merge)(解释: true)).first
end

# write?布尔

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

此聚合是否会将其结果写入数据库集合。

返回:

  • ( Boolean )

    聚合是否会将其结果写入集合。

由于:

  • 2.0.0



124
125
126
# File 'build/Ruby-driver-v 2.19 /lib/mongo/collection/view/aggregation.rb', 第124行

def 写入?
  管道.任何? { |op| op.键?(' $out ') || op.键?(:$out) || op.键?(' $merge ') || op.键?(:$merge) }
end