类:Mongo::Database::View

继承:
对象
  • 对象
显示全部
扩展方式:
可转发
包括:
Enumerable、Cursor::NonTailable、CursorHost、Retryable
定义于:
lib/mongo/database/view.rb

Overview

表示数据库视图的类。

由于:

  • 2.0.0

实例属性摘要折叠

CursorHost 包含的属性

#cursor, #timeout_mode

实例方法摘要折叠

Cursor::NonTailable 中包含的方法

#cursor_type, #timeout_mode

CursorHost 包含的方法

#validate_timeout_mode!

Retryable 中包含的方法

#read_worker#select_server#write_worker

构造函数详情

#initialize(database, options = {}) ⇒ View

创建新的数据库视图。

例子:

创建新的数据库视图。

Database::View.new(database)

参数:

  • database (数据库)

    数据库。

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

    用于配置视图的选项。

选项哈希 ( options ):

  • :timeout_mode ( :cursor_lifetime | :iteration )

    如何解释 :timeout_ms(是应用于游标的生命周期,还是每次迭代)。

  • :timeout_ms 整数

    操作超时(以毫秒为单位)。 必须是非负整数。 0 的显式值表示无限。 未设置默认值,这意味着该值是从数据库或客户端继承的。

由于:

  • 2.0.0



149
150
151
152
153
154
155
156
157
158
# File 'lib/ Mongo/ 数据库/view.rb', line 149

def 初始化(database, 选项 = {})
  @database = database
  @operation_timeout_ms = 选项.删除(:timeout_ms)

  validate_timeout_mode!(选项)

  @batch_size =  nil
  @limit = nil
  @collection = @database[Database::命令]
end

实例属性详细信息

# batch_size整数(只读)

返回 batch_size 发送 listCollections 命令时结果批次的大小。

返回:

  • ( Integer )

    batch_size 发送 listCollections 命令时批量结果的大小。

由于:

  • 2.0.0



40
41
42
# File 'lib/ Mongo/ 数据库/view.rb', line 40

def batch_size
  @batch_size
end

# collection =" Collection " (只读)

返回集合 命令集合。

返回:

由于:

  • 2.0.0



46
47
48
# File 'lib/ Mongo/ 数据库/view.rb', line 46

def 集合
  @collection
end

#数据库对象(只读)

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

由于:

  • 2.0.0



161
162
163
# File 'lib/ Mongo/ 数据库/view.rb', line 161

def database
  @database
end

# limit整数(只读)

返回限制 发送命令时的限制。

返回:

  • ( Integer )

    limit 发送命令时的限制。

由于:

  • 2.0.0



43
44
45
# File 'lib/ Mongo/ 数据库/view.rb', line 43

def limit
  @limit
end

# operation_timeout_ms Integer | nil |作为选项传递给视图的 timeout_ms 值。(只读)

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

返回整数 | nil |作为选项传递给视图的 timeout_ms 值。

返回:

  • (Integer | nil | 作为选项传递给视图的 timeout_ms 值。)

    整数 | nil |作为选项传递给视图的 timeout_ms 值。

由于:

  • 2.0.0



167
168
169
# File 'lib/ Mongo/ 数据库/view.rb', line 167

def operation_timeout_ms
  @operation_timeout_ms
end

实例方法详细信息

#aggregate (pipeline, options = {}) ⇒ Collection::View::Aggregation

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

在数据库视图上执行聚合。

例子:

聚合文档。

view.aggregate([
  { "$listLocalSessions" => {} }
])

参数:

  • 管道 ( Array<Hash> )

    聚合管道。

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

    聚合选项。

返回:

由于:

  • 2.10.0



183
184
185
# File 'lib/ Mongo/ 数据库/view.rb', line 183

def 聚合(管道, 选项 = {})
  Collection::查看::聚合(Aggregation).new(self, 管道, 选项)
end

# collection_names (options = {}) ⇒ Array<String>

注意:

返回的集合名称集取决于完成请求的 MongoDB 服务器的版本。

获取数据库中所有非系统集合的名称。

See http://mongodb.com/zh-cn/docs/manual/reference/command/listCollections/
for more information and usage.

参数:

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

    listCollections 命令的选项。

选项哈希 ( options ):

  • :batch_size 整数

    listCollections 命令返回结果的批处理大小。

  • :filter 哈希

    返回的集合的筛选器。

  • :authorized_collections ( true , false )

    一个标志,设置为 true 时,允许没有所需特权的用户在实施访问控制时运行命令。

  • :comment 对象

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

  • :timeout_ms 整数

    操作超时(以毫秒为单位)。 必须是非负整数。 0 的显式值表示无限。 未设置默认值,这意味着该值是从数据库或客户端继承的。

  • :session 会话

    要使用的会话。

返回:

  • ( Array<String> )

    所有非系统集合的名称。

由于:

  • 2.0.0



75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'lib/ Mongo/ 数据库/view.rb', line 75

def collection_names(选项 = {})
  @batch_size = 选项[:batch_size]
  会话 = 客户端.get_session(选项)
  上下文 = 操作::上下文.new(
    客户端: 客户端,
    会话: 会话,
    operation_timeups: operation_timeups(选项)
  )
  cursor = read_with_retry_cursor(会话, ServerSelector.主节点, self, 上下文: 上下文) do |server|
    send_initial_query(server, 会话, 上下文, 选项.合并(merge)(name_only: true))
  end
  cursor.map do |信息|
    if cursor.Initial_result.connection_description.功能.list_collections_enabled?
      信息[' name ']
    else
      (信息[' name '] &&
        信息[' name '].(" #{ @database . name } . ", ' '))
    end
  end.拒绝 do |名称|
    名称.start_with?('系统。 ') || 名称.包括?('$')
  end
end

# list_collections (options = {}) ⇒ Array<Hash>

注意:

返回的集合集以及每个集合的信息哈希模式取决于完成请求的 MongoDB 服务器版本。

获取有关数据库中所有集合的信息。

例子:

获取有关每个集合的信息。

database.list_collections

参数:

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

选项哈希 ( options ):

  • :filter 哈希

    返回的集合的筛选器。

  • :name_only ( true , false )

    指示命令是应仅返回集合/视图名称和类型,还是同时返回名称和其他信息

  • :authorized_collections ( true , false )

    一个标志,当设立为 true 并与 nameOnly: true 一起使用时,允许没有所需权限的用户在实施访问权限控制时运行命令

    请参阅mongodb.com/zh-cn/docs/manual/reference/command/listCollections / 了解更多信息和用法。

  • :session 会话

    要使用的会话。

  • :deserialize_as_bson 布尔值

    是否尽可能使用BSON types而不是原生Ruby类型来反序列化此消息。

返回:

  • ( Array<Hash> )

    数据库中每个集合的信息。

由于:

  • 2.0.5



127
128
129
130
# File 'lib/ Mongo/ 数据库/view.rb', line 127

def list_collections(选项 = {})
  会话 = 客户端.get_session(选项)
  collections_info(会话, ServerSelector.主节点, 选项)
end

# operation_timeups (opts = {}) ⇒ 哈希

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

返回在操作级别(如果有)上设立的timeout_ms 值。

返回:

  • (哈希)

    在操作级别(如果有)上设立的timeout_ms 值。

由于:

  • 2.0.0



198
199
200
201
202
203
204
205
206
# File 'lib/ Mongo/ 数据库/view.rb', line 198

def operation_timeups(opts = {})
  {}.点击 do |结果|
    if opts[:timeout_ms] || operation_timeout_ms
      结果[:operation_timeout_ms] = opts.删除(:timeout_ms) || operation_timeout_ms
    else
      结果[:inherited_timeout_ms] = database.timeout_ms
    end
  end
end

#timeout_msInteger | nil

用于此操作的 timeout_ms 值;指定为视图的选项,或从数据库继承。

返回:

  • ( Integer | nil )

    此操作的 timeout_ms

由于:

  • 2.0.0



191
192
193
# File 'lib/ Mongo/ 数据库/view.rb', line 191

def timeout_ms
  operation_timeout_ms || database.timeout_ms
end