欢迎投稿

今日深度:

MongoDB,

MongoDB,


  最近在博客园经常看到关于mongodb的文章,闲暇时间自己也适用了一下,发现在某些方面用起来相当的简单,只要写一个类,再定义模型对象,其他的只要调用就OK了。

比如添加数据:

1 public staticvoid Add<TModel>(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<TModel>(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>(user);

更新数据:

1 public staticvoid Update<TModel>(TModel model, object id)
2 {
3 BsonDocument doc = BsonExtensionMethods.ToBsonDocument(model);
4 IList<BsonElement> elements =new List<BsonElement>();
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):

1 MongoInstance.Update<User>(user, "4ddb06b73a0c080f4ccb6df5");

删除数据:

1 public staticvoid Delete<TModel>(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<User>("4ddb06b73a0c080f4ccb6df5");

根据Id获得对象数据:

1 public static TModel GetById<TModel>(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<TModel>(typeof(TModel).Name);
9 var m = collection.FindOne(query);
10 if (m !=null)
11 return m;
12 }
13 returndefault(TModel);
14 }

调用示例:

1 MongoInstance.GetById<User>("4ddb06ac3a0c080f4ccb6df4");

获得全部数据:

1 public static IList<TModel> GetAll<TModel>()
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<TModel>(typeof(TModel).Name);
8 return employees.FindAll().ToList();
9 }
10 }

调用示例:

MongoInstance.GetAll<User>();

分页:

1 public static IList<TModel> GetDataPaging<TModel>(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<TModel>(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<User>(2, out tPage, 2);

www.htsjk.Com true http://www.htsjk.com/MongoDB/10379.html NewsArticle MongoDB, 最近在博客园经常看到关于mongodb的文章,闲暇时间自己也适用了一下,发现在某些方面用起来相当的简单,只要写一个类,再定义模型对象,其他的只要调用就OK了。 比如添加...
相关文章
    暂无相关文章
评论暂时关闭