)
下表中列出的是文件操作支持的可选参数
参数参数描述:chunk_sie设定数据库中每个文件块的大小:content_type设定文件的内容类型:filename(Required)文件名:upload_date文档上传的日期(存储) 7.文件插入
可以一次插入一个文档到数据库。块文件默认插入到fs.chunks集合中,文件元数据插入到fs.files集合中。
client=Mongo::CLient.new(['127.0.0.1:27017'],:database=>'film')
file=Mongo::Grid::File.new('I am a file',:filename=>'new-file.txt')
client.database.fs.insert_one(file)
使用名称前缀而不是fs函数,使用:fs_name参数可以访问文件系统
client=Mongo::Client.new(['127.0.0.1:27017'],:database=>'film')
file=Mongo::Grid::File.new('I am a file',:filename=>'new-file.txt')
client.database.fs(:fs_name=>'grid').insert_one(file)
需要注意的是文件第一次插入时,系统会自动创建块集合上的索引。创建的是一个复合索引
{:files_id=>1,:n=>1} 同样文件也可以被流处理后直接插入
client.database.fs.open_stream(filename) do |stream|
stream.write(file)
end
8. 文件查找
从数据库中检索一个文件,可以通过在find_one中使用合适的过滤规则实现
client=Mongo::Client.new(['127.0.0.1:27017'],:database=>'film')
client.database.fs.find_one(:filename=>'new-file.txt')
也可以通过流操作来进行查找
client.database.fs.open_download_stream(file_id) do |stream|
io.write(stream.read)