MongoDB
最近在博客园经常看到关于mongodb的文章,闲暇时间自己也适用了一下,发现在某些方面用起来相当的简单,只要写一个类,再定义模型对象,其他的只要调用就OK了。比如添加数据:
1 public staticvoid Add(TModel model)
2 {
3 var doc = BsonExtensionMethods.ToBsonDocument(model);
4 MongoServer server = MongoServer.Create(MongoConfig.ConnectionString);
5 MongoDatabase database = server.GetDatabase(MongoConfig.DataBase);
6 using (server.RequestStart(database))
7 {
8 var collection = database.GetCollection(typeof(TModel).Name);
9 collection.Insert(doc);
10 }
11 } 调用示例:
1 User user =new User();
2 user.Password ="1234566";
3 user.UserName ="hao";
4 user.RegisterTime = DateTime.Now;
5 MongoInstance.Add(user); 更新数据:
1 public staticvoid Update(TModel model, object id)
2 {
3 BsonDocument doc = BsonExtensionMethods.ToBsonDocument(model);
4 IList elements =new List();
5 foreach (var item in doc.Elements)
6 {
7 if (item.Value.IsBsonNull)
8 {
9 elements.Add(item);
10 }
11 }
12 foreach (var el in elements)
13 {
14 doc.RemoveElement(el);
15 }
16 MongoServer server = MongoServer.Create(MongoConfig.ConnectionString);
17 MongoDatabase database = server.GetDatabase(MongoConfig.DataBase);
18 using (server.RequestStart(database))
19 {
20 var collection = database.GetCollection(typeof(TModel).Name);
21 var query =new QueryDocument { { "_id", new BsonObjectId(id.ToString()) } };
22 var update =new UpdateDocument(doc);
23 collection.Update(query, update);
24 }
25 } 调用示例(不能设置Id):
1MongoInstance.Update(user, "4ddb06b73a0c080f4ccb6df5"); 删除数据:
1 public staticvoid Delete(object id)
2 {
3 MongoServer server = MongoServer.Create(MongoConfig.ConnectionString);
4 MongoDatabase database = server.GetDatabase(MongoConfig.DataBase);
5 using (server.RequestStart(database))
6 {
7 var collection = database.GetCollection(typeof(TModel).Name);
8 var query =new QueryDocument("_id", new BsonObjectId(id.ToString()));
9 collection.Remove(query);
10 }
11 } 调用示例:
MongoInstance.Delete("4ddb06b73a0c080f4ccb6df5"); 根据Id获得对象数据:
1 public static TModel GetById(object id)
2 {
3 MongoServer server = MongoServer.Create(MongoConfig.ConnectionString);
4 MongoDatabase database = server.GetDatabase(MongoConfig.DataBase);
5 using (server.RequestStart(database))
6 {
7 var query =new QueryDocument("_id", new BsonObjectId(id.ToString()));
8 var collection = database.GetCollection(typeof(TModel).Name);
9 var m = collection.FindOne(query);
10 if (m !=null)
11 return m;
12 }
13 returndefault(TModel);
14 } 调用示例:
1 MongoInstance.GetById("4ddb06ac3a0c080f4ccb6df4"); 获得全部数据:
1 public static IList GetAll()
2 {
3 MongoServer server = MongoServer.Create(MongoConfig.ConnectionString);
4 MongoDatabase database = server.GetDatabase(MongoConfig.DataBase);
5 using (server.RequestStart(database))
6 {
7 var employees = database.GetCollection(typeof(TModel).Name);
8 return employees.FindAll().ToList();
9 }
10 } 调用示例:
MongoInstance.GetAll(); 分页:
1 public static IList GetDataPaging(int pageIndex, outint totalPage, int pageSize =20)
2 {
3 totalPage =0;
4 MongoServer server = MongoServer.Create(MongoConfig.ConnectionString);
5 MongoDatabase database = server.GetDatabase(MongoConfig.DataBase);
6 using (server.RequestStart(database))
7 {
8 var collection = database.GetCollection(typeof(TModel).Name);
9 var result = collection.FindAll();
10 result.Skip = (pageIndex -1) * pageSize;
11 result.Limit = pageSize;
12 return result.ToList();
13 }
14 } 调用示例:
1 MongoInstance.GetDataPaging(2, out tPage, 2);
页:
[1]