设为首页 加入收藏

TOP

MongoDB使用总结(C#版)(一)
2015-11-21 01:35:12 来源: 作者: 【 】 浏览:2
Tags:MongoDB 使用 总结

简介

MongoDB是非关系型、文档型的数据库,方便之处在于可以直接存取class类型……官网定期会开设Free的课程,上一个项目中使用到MongoDB,现在我做的项目用的是EF,所以想将MongoDB用过的方法、注意的事项和一些想法总结一下,毕竟,如果再次使用的话林林总总去拼凑还是要浪费时间的。

DLL

(1) MongoDB.Bson.dll
(2) MongoDB.Driver.dll

软件

很好的可视化软件,MongoVUE

方法

连接

//Mongo数据库名称
private MongoDatabase Mg_db;
//Mongo数据库集合名称
public MongoCollection Mg_col;
//MongoServer
private MongoServer mongoServer;
//连接字符串(以mongodb://开头)
string connectionString = "mongodb://localhost";//或者是192.xxx.xxx.xxx
//string constr = "mongodb://" + ip + ":" + port;       //连接ip和该port
//连接Mongo数据库
var client = new MongoClient(connectionString);
//得到一个客户端引用
mongoServer = client.GetServer();

创建数据库

Mg_db = mongoServer.GetDatabase(dbName); //dbName是新库的名字 //如果已有dbName这个库,那Mg_db是get这个库,否则就是创建

创建表(集合)

Mg_col = Mg_db.GetCollection
     
      (connectionName); //connectionName是新表的名字 //如果该库已有connectionName这个表,那Mg_col 是get这个表,否则就是创建
     

在表中插入数据

public void Insert
      
       (string dbName, string connectionName, T t) { Mg_db = mongoServer.GetDatabase(dbName); //get 某个库 MongoCollection collection = Mg_db.GetCollection
       
        (connectionName); //get该库某个表 collection.Insert(t); //插入(任意类型) }
       
      

在表中删除数据

public void delete
       
        (string dbName, string connectionName, string key, BsonValue value) { Mg_db = mongoServer.GetDatabase(dbName); Mg_col = Mg_db.GetCollection
        
         (connectionName); var query = Query.EQ(key, value); //查询条件,eg:我要删除name是张三的该条数据,key,字段名,value是张三 Mg_col.Remove(query); }
        
       

更新表中的某一条数据

public void UpData(string dbName, string connectionName, string key, BsonValue value, People t) { Mg_db = mongoServer.GetDatabase(dbName); Mg_col = Mg_db.GetCollection(connectionName); var query = Query.EQ(key, value); People temp = Mg_col.FindOneAs
        
         (query); //根据查询条件获取表中People类型的数据temp,这也是我们要更新的数据 t.id = (temp as People).id; //t是People类型的一条新数据,它拿到要更新数据的id Mg_col.Update(query, Update.Replace(t)); }
        

查找某个表符合条件的对象并返回

public T Find
         
          (string dbName, string connectionName, string key, BsonValue value) { Mg_db = mongoServer.GetDatabase(dbName); MongoCollection collection = Mg_db.GetCollection
          
           (connectionName); var query = Query.EQ(key, value); T result = collection.FindOneAs
           
            (query); return result; }
           
          
         

查找某个表符合条件的对象个数

public long FindSameNameCollectionNum(string dbName, string collcetionName, string key, BsonValue value) { Mg_db = mongoServer.GetDatabase(dbName); Mg_col = Mg_db.GetCollection(collcetionName); var query = Query.EQ(key, value); long count = Mg_col.Count(query); return count; }

获取某个表中的所有对象

public List
           
             GetProjectArray
            
             (string dbName, string connectionName) { Mg_db = mongoServer.GetDatabase(dbName); Mg_col = Mg_db.GetCollection(connectionName); //获取该集合所有对象 var result = Mg_col.FindAllAs
             
              (); List
              
                pList = new List
               
                (); pList.AddRange(result); return pList; }
               
              
             
            
           

存储影音文本数据放在GridFS

MongoDB中每个库对应一个GridFS文件夹用来存放影音文本……
可以在这里用程序添加
可以直接在MongoVUE中添加

public void AddFileInGridFS(string dbName, string filePath) { Mg_db = mongoServer.GetDatabase(dbName); MongoGridFS gridfs = Mg_db.GridFS; gridfs.Upload(filePath); }

取出放在GridFS中的数据

public void LoadFileInGridFS(string dbName, string fileName) { Mg_db = mongoServer.GetDatabase(dbName); MongoGridFS gridfs = Mg_db.GridFS; gridfs.Download(fileName); }

取出放在GridFS中的数据保存在Byte[]中

public byte[] ReadFileFromfs(string dbName, string fileN
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇一个表空间使用率查询sql的优化 下一篇Windows下安装MongoDb

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: