类:Mongo::ClusterTime Private
- 继承:
-
BSON::Document
- 对象
- BSON::Document
- Mongo::ClusterTime
- 定义于:
- build/Ruby-driver-v 2.19 /lib/mongo/cluster_time.rb
Overview
此类是私有 API 的一部分。 应尽可能避免使用此类,因为它将来可能会被删除或更改。
ClusterTime 封装了集群时间存储和操作。
对集群时间执行的主节点 (primary node in the replica set)操作是将其提前:给定另一个集群时间,选择两个时间中较新的一个。
此类提供了用于确定哪个集群时间较新的比较方法,并在集群时间文档中缺少实际时间时以 lint 模式提供诊断。
在命名空间下定义
模块: 消费者
类方法摘要折叠
-
。 [] (doc) ⇒ 对象
private
将BSON::Document 转换为 ClusterTime。
实例方法摘要折叠
- # < (other) ⇒ 对象 private
- # <= (other) ⇒ 对象 private
-
# <=> (other) ⇒ 对象
private
通过比较时间戳来比较两个 ClusterTime 实例。
-
# == (other) ⇒ 对象
private
通过比较时间戳来比较两个 ClusterTime 实例。
- # > (other) ⇒ 对象 private
-
# >= (other) ⇒ 对象
private
旧版 Ruby 不通过 <=> 实现其他逻辑操作符。
-
# advance (other) ⇒ 对象
private
将接收器中的集群时间提前到
other
中的集群时间。 -
#initialize(elements = nil) ⇒ ClusterTime
构造函数
private
ClusterTime 的新实例。
构造函数详情
#initialize (elements = nil) ⇒ ClusterTime
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回 ClusterTime 的新实例。
30 31 32 33 34 35 36 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /cluster_time.rb', 第30行 def 初始化(元素 = nil) 超 if Lint.已启用? && !self[' clusterTime '] 提高 ArgumentError, ' Creating a 集群 time without clusterTime 字段 ' end end |
类方法详细信息
。 [] (doc) ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
将BSON::Document 转换为 ClusterTime。
doc
可以为 nil,在这种情况下返回 nil。
97 98 99 100 101 102 103 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /cluster_time.rb', 第97行 def [ ](doc) if doc.nil? || doc.is_a?(ClusterTime) doc else ClusterTime.new(doc) end end |
实例方法详细信息
# < (other) ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
78 79 80 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /cluster_time.rb', 第78行 def <(其他) (self <=> 其他) == -1 end |
# <= (other) ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
75 76 77 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /cluster_time.rb', 第75行 def <=(其他) (self <=> 其他) != 1 end |
# <=> (other) ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
通过比较时间戳来比较两个 ClusterTime 实例。
56 57 58 59 60 61 62 63 64 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /cluster_time.rb', 第56行 def <=>(其他) if self[' clusterTime '] && 其他[' clusterTime '] self[' clusterTime '] <=> 其他[' clusterTime '] elsif !self[' clusterTime '] 提高 ArgumentError, "当接收器缺少 clusterTime key 时,无法比较集群时间: #{ inspect } " else 其他[' clusterTime '] 提高 ArgumentError, " Cannot比较集群时间,当 other 缺少 clusterTime key: #{ other.inspect} " end end |
# == (other) ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
通过比较时间戳来比较两个 ClusterTime 实例。
83 84 85 86 87 88 89 90 91 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /cluster_time.rb', 第83行 def ==(其他) if self[' clusterTime '] && 其他[' clusterTime '] && self[' clusterTime '] == 其他[' clusterTime '] then true else false end end |
# > (other) ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
72 73 74 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /cluster_time.rb', 第72行 def >(其他) (self <=> 其他) == 1 end |
# >= (other) ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
旧版 Ruby 不通过 <=> 实现其他逻辑操作符。 TODO 修改了实施jira.mongodb.org/browse/RUBY-{1 1622时是否需要这些方法。
69 70 71 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /cluster_time.rb', 第69行 def >=(其他) (self <=> 其他) != -1 end |
# advance (other) ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
将接收器中的集群时间提前到other
中的集群时间。
other
可以为零或晚于接收器中的集群时间;在这些情况下,接收者会按原样返回。 如果接收器提前,则返回一个新的 ClusterTime 对象。
返回值为 nil 或 ClusterTime实例。
45 46 47 48 49 50 51 52 53 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /cluster_time.rb', 第45行 def advance(其他) if self[' clusterTime '] && 其他[' clusterTime '] && 其他[' clusterTime '] > self[' clusterTime '] then ClusterTime[其他] else self end end |