MongoDB学习笔记(五)MongoDB文件存取操作(2)

来源:未知 责任编辑:责任编辑 发表时间:2013-11-15 19:51 点击:
{
    string filename = Guid.NewGuid().ToString();
 
    //这里GridFile构造函数有个重载,bucket参数就是用来替换那个创建集合名中默认的"fs"的。
    GridFile gridFile = new GridFile(mongoDatabase);
    using (GridFileStream gridFileStream = gridFile.Create(filename))
    {
        gridFileStream.Write(byteFile, 0, byteFile.Length);
    }
    return filename;
}
 
private byte[] GridFsRead(string filename)
{
    GridFile gridFile = new GridFile(mongoDatabase);
    GridFileStream gridFileStream = gridFile.OpenRead(filename);
    byte[] bytes = new byte[gridFileStream.Length];
    gridFileStream.Read(bytes, 0, bytes.Length);
    return bytes;  www.2cto.com  
}
 
private void GridFsDelete(string filename)
{
    GridFile gridFile = new GridFile(mongoDatabase);
    gridFile.Delete(new Document("filename", filename));
}
   2. 再次封装GridFS操作,新文档只存储文件名称,相当于只是一个键,新文档还可以有除“文件名”之外其他的键。
 
/// <summary>
/// 把图片存到GridFS中
/// </summary>
public void SaveImgGridFS(byte[] byteImg)
{
    string filename = GridFsSave(byteImg);
 
    Document doc = new Document();
    doc["ID"] = 1;
    doc["filename"] = filename;
    mongoCollection.Save(doc);
}
 
/// <summary>
/// 获取GridFS方式存储的图片
/// </summary>
public byte[] GetImgGridFS()
{  www.2cto.com  
    Document doc = mongoCollection.FindOne(new Document { { "ID", 1 } });
    string filename = doc["filename"].ToString();
    return GridFsRead(filename);
}
三、小结
 
  文件存取应该不是很难,值得注意的地方是:用第一种方式从文档中读出二进制数据时,一定要将类型转换为“Binary”类型;还有系统自带的键“_id”,它也不是string类型,是“Oid”类型的。
 

 
本文出自 http://www.cnblogs.com/lipan/
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Request.ServerVariables 参数大全
  • 执行全文索引时出现权限不足的解决方法
  • 导入excel文件处理流程节点的解决方案
  • 查看sql修改痕迹(SQL Change Tracking on Table)
  • MongoDB安装为Windows服务方法与注意事项
  • App数据层设计及云存储使用指南
  • PostgreSQL启动过程中的那些事三:加载GUC参数
  • 写给MongoDB开发者的50条建议Tip1
  • Percolator与分布式事务思考(二)
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1