您的位置:首页 > 数据库 > Mongodb

【MongoDB】 基于C#官方驱动2.2版的封装类

2016-06-07 10:08 525 查看

一、前言


  最近项目中要用到MongoDB,因此实现做了不少的调研。发现网上很多现有关于MongoDB C#官方驱动的调用方法都是基于1.8版本的,已经不是用了最新的2.2版本。因此我在基于C#官方驱动2.2的基础上,对MongoDB的调用方法做了一些封装,以便于调用。

  封装的内容包括:

  1.封装了获取数据库及集合的方法

  2.封装了新增一条、多条数据的方法

  3.封装了更新一条、根据条件更新多条数据的方法,注意:是将对象统一更新成同一内容

  4.封装了删除一条,根据条件删除多条数据的方法。

  5.封装了根据Id获取单条数据,根据条件获取单条数据,获取集合首条数据的方法。


二、环境准备


  1 .NET Framework:4.5

  2 相关文档

    入门指南:http://mongodb.github.io/mongo-csharp-driver/2.2/getting_started/quick_tour/

    API文档:http://api.mongodb.org/csharp/2.2

  3 使用NuGet下载最新的驱动

    1)右键点击类库中【引用】,选择【管理NuGet程序包】

    

public class TestLogic
{
private MongoDBHelper _mongo;

public TestLogic()
{
_mongo = new MongoDBHelper();
}

public int Insert()
{
Users users = new Users()
{
Name = "test",
Sex="man",
Spell = new List<int>()
};

users.Spell.Add(1);
users.Spell.Add(2);
users.Spell.Add(3);

var collection = _mongo.GetMongoCollection<Users>("User");
collection.InsertOne(users);

return collection.AsQueryable().Count();
}

public int Delete()
{
var collection = _mongo.GetMongoCollection<Users>("User");
var first = collection.FirstOne<Users>();

_mongo.Delete<Users>("User", first);

return collection.AsQueryable().Count();
}

public int DeleteMany()
{
var collection = _mongo.GetMongoCollection<Users>("User");

_mongo.DeleteMany<Users>("User", o => o.Sex == "man");

return collection.AsQueryable().Count();
}

public int Update()
{
var collection = _mongo.GetMongoCollection<Users>("User");
var first = collection.FirstOne<Users>();
first.Sex = "女";
first.Name = "Update";
first.Spell.ForEach(o =>
{
first.Spell[first.Spell.IndexOf(o)] = o + 40;
});

_mongo.UpdateOne("User", first);

return collection.AsQueryable().Count();
}

public string GetOne()
{
var user = _mongo.FirstOrDefault<Users>("User", o => o.Sex == "女");

return user == null ? "" : user.Name;
}
}


View Code

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: