类:Mongo::Grid::FSBucket::Stream::Read
- 继承:
-
对象
- 对象
- Mongo::Grid::FSBucket::Stream::Read
- 包括:
- 可枚举
- 定义于:
- build/Ruby-driver-v 2.19 /lib/mongo/grid/stream/read.rb
Overview
从 FSBucket 读取文件的流。
实例属性摘要折叠
-
# file_id ⇒ BSON::ObjectId, Object
只读
File_id 正在读取的文件的 ID。
-
#fs ⇒ FSBucket
只读
Fs 此流从中读取数据的 fs 存储桶。
-
# options ⇒ 哈希
只读
选项 流选项。
实例方法摘要折叠
-
# close ⇒ BSON::ObjectId, Object
关闭读取流。
-
#已关闭? ⇒ true, false
流是否已关闭。
-
#每个{|Each| ... } ⇒ 枚举器
遍历从 FSBucket 流式传输的数据段。
-
# file_info ⇒ File::Info
获取正在读取的文件的文件集合文件信息文档。
-
#initialize (fs, options) ⇒ 读取
构造函数
创建用于从 FSBucket 读取文件的流。
-
#读取⇒ string
读取所有文件数据。
-
# read_preference ⇒ BSON::Document
获取读取偏好。
构造函数详情
#initialize (fs, options) ⇒读取
创建用于从 FSBucket 读取文件的流。
56 57 58 59 60 61 62 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /grid/ 流/read.rb', 第56行 def 初始化(fs, ) @fs = fs @options = .dup @file_id = @options.删除(:file_id) @options.冻结 @open = true end |
实例属性详细信息
# file_id ⇒ BSON::ObjectId , Object (readonly)
返回 file_id 正在读取的文件的 ID。
42 43 44 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /grid/ 流/read.rb', 第42行 def file_id @file_id end |
# fs ⇒ FSBucket (只读)
返回 fs 此流从中读取数据的 fs 存储桶。
32 33 34 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /grid/ 流/read.rb', 第32行 def fs @fs end |
# options ⇒哈希(只读)
返回 options 流选项。
37 38 39 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /grid/ 流/read.rb', 第37行 def @options end |
实例方法详细信息
# close ⇒ BSON::ObjectId , Object
关闭读取流。
如果流已关闭,则此方法不执行任何操作。
125 126 127 128 129 130 131 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /grid/ 流/read.rb', 第125行 def 关闭 if @open 查看.close_query @open = false end file_id end |
#已关闭? ⇒ true , false
流是否已关闭。
141 142 143 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /grid/ 流/read.rb', 第141行 def 已关闭? !@open end |
#每个{|Each| ... } ⇒枚举器
遍历从 FSBucket 流式传输的数据段。
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /grid/ 流/read.rb', 第78行 def 每 确保可读! 信息 = file_info num_chunks = (信息.长度 + 信息.chunk_size - 1) / 信息.chunk_size num_read = 0 if block_given? 查看.each_with_index.化简(reduce)(0) do |length_read, (doc, 索引(index))| 数据段 = 网格::file::数据块.new(doc) validate!(索引(index), num_chunks, 数据段, length_read) 数据 = 数据段.数据.数据 产量 数据 num_read += 1 length_read += 数据.size end.点击 do if num_read < num_chunks 提高 错误::MissingFileChunk.new(num_chunks, num_read) end end else 查看.to_enum end end |
# file_info ⇒ File::Info
注意:
文件信息缓存在流。 对 file_info 的后续调用将返回与第一次调用返回的相同信息,并且不会再次查询数据库。
获取正在读取的文件的文件集合文件信息文档。
179 180 181 182 183 184 185 186 187 188 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /grid/ 流/read.rb', 第179行 def file_info @file_info ||= 开始 doc = [:file_info_doc] || fs.files_collection.find(_id: file_id).first if doc file::信息.new(选项::映射器.转换(Transform)(doc, file::信息::mappings.反转)) else nil end end end |
#读取⇒ string
读取所有文件数据。
111 112 113 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /grid/ 流/read.rb', 第111行 def 读 to_a.连接 (JOIN) end |
# read_preference ⇒ BSON::Document
注意:
此方法始终返回 BSON::Document 实例,即使构造函数将 :read 的类型指定为哈希,而不是 BSON::Document。
获取读取偏好。
158 159 160 161 162 163 164 165 166 167 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /grid/ 流/read.rb', 第158行 def read_preference @read_preference ||= 开始 pref = [:read] || fs.read_preference if BSON::文档 === pref pref else BSON::文档.new(pref) end end end |