类:Mongoid::Criteria::Queryable::Pipeline

继承:
阵列
  • 对象
显示全部
定义于:
lib/mongoid/criteria/queryable/ 管道.rb

Overview

表示聚合管道。

实例属性摘要折叠

实例方法摘要折叠

构造函数详情

#initialize (aliases = {}) {|_self| ... } ⇒管道

初始化新管道。

例子:

初始化新管道。

Queryable::Pipeline.new(aliases)

参数:

  • 别名 哈希 (默认为: {}

    从别名到数据库中实际字段名称的映射的哈希值。

产量:

  • ( _self )

收益参数:



48
49
50
51
# File 'lib/mongoid/criteria/queryable/ 管道.rb', line 48

def 初始化(别名 = {})
  @aliases = 别名
  产量(self) if block_given?
end

实例属性详细信息

#别名对象(只读)

返回属性别名的值。



12
13
14
# File 'lib/mongoid/criteria/queryable/ 管道.rb', line 12

def 别名
  @aliases
end

# aliases字段别名。 (字段别名。) ⇒对象(只读)



12
# File 'lib/mongoid/criteria/queryable/ 管道.rb', line 12

attr_reader :aliases

实例方法详细信息

# __deep_copy__管道

深度复制聚合管道。 将克隆管道中的所有值以及管道本身。

例子:

深度复制管道。

pipeline.__deep_copy__

返回:

  • (管道)

    克隆的管道。



21
22
23
24
25
26
27
# File 'lib/mongoid/criteria/queryable/ 管道.rb', line 21

def __deep_copy__
  self.class.new(别名) do |copy|
     do |条目|
      copy.推动(条目.__deep_copy__)
    end
  end
end

# 群组 (entry) ⇒ Pipeline

将群组操作添加到聚合管道。

例子:

添加群组操作。

pipeline.group(:_id => "foo", :count.sum => 1, :max.max => "likes")

参数:

  • 条目 (哈希)

    群组条目。

返回:



37
38
39
# File 'lib/mongoid/criteria/queryable/ 管道.rb', line 37

def GROUP(条目)
  推动(" $ 群组 " => 发展(条目.__expand_complex__))
end

# 项目 (entry) ⇒ Pipeline

将 $project 条目添加到聚合管道。

例子:

添加投影。

pipeline.project(name: 1)

参数:

  • 条目 (哈希)

    投影。

返回:



61
62
63
# File 'lib/mongoid/criteria/queryable/ 管道.rb', line 61

def 项目(条目)
  推动(" $ 项目 " => 发展(条目))
end

# unwind (field_or_doc) ⇒管道

将 $unwind 条目添加到管道。

例子:

添加展开。

pipeline.unwind(:field)
pipeline.unwind(document)

参数:

  • field_or_doc ( string | Symbol | Hash )

    字段名称或文档。

返回:



75
76
77
78
79
80
81
82
83
# File 'lib/mongoid/criteria/queryable/ 管道.rb', line 75

def Unwind(field_or_doc)
  除非 field_or_doc.respond_to? :keys
    标准化 = field_or_doc.to_s
    名称 = 别名[标准化] || 标准化
    推动("$unwind" => 名称.__mongo_expression__)
  else
    推动("$unwind" => field_or_doc)
  end
end