下面演示下C#操作MongoDB驱动的简单的增删改查代码
运用到的MongoDB支持的C#驱动,当前版本为1.6.0
下载地址:https://github.com/mongodb/mongo-csharp-driver/downloads
1,连接数据库
/// <summary> /// 数据库连接 /// </summary> private const string conn = "mongodb://127.0.0.1:27017"; /// <summary> /// 指定的数据库 /// </summary> private const string dbName = "mongodb_name"; /// <summary> /// 指定的表 /// </summary> private const string tbName = "table_text"; //创建数据连接 MongoServer server = MongoServer.Create(conn); //获取指定数据库 MongoDatabase db = server.GetDatabase(dbName); //获取表 MongoCollection col = db.GetCollection(tbName);
2、插入数据
因为MongoDB没有表的概念,所以自插入数据之前定义好自己的数据模型
User.cs
下面是添加数据的代码
/// <summary> /// 添加 /// </summary> /// <param name="text">内容</param> /// <param name="articleId">文章ID</param> /// <param name="channelId">频道ID</param> /// <returns></returns> public static void Add(User t) { //创建数据连接 MongoServer server = MongoServer.Create(conn); //获取指定数据库 MongoDatabase db = server.GetDatabase(dbName); //获取表 MongoCollection col = db.GetCollection(tbName); //插入 col.Insert(t); }
3、删除操作
/// <summary> /// 根据ObjectID 删除 /// </summary> /// <param name="objId"></param> public static void Delete(string objId) { //创建数据连接 MongoServer server = MongoServer.Create(conn); //获取指定数据库 MongoDatabase db = server.GetDatabase(dbName); //获取表 MongoCollection<User> col = db.GetCollection<User>(tbName); IMongoQuery query = Query.EQ("_id", new ObjectId(objId)); col.Remove(query); }
4、修改
/// <summary> /// 根据ObjectID 修改 /// </summary> public static void Update(User t) { //创建数据连接 MongoServer server = MongoServer.Create(conn); //获取指定数据库 MongoDatabase db = server.GetDatabase(dbName); //获取表 MongoCollection<User> col = db.GetCollection<User>(tbName); BsonDocument bd = BsonExtensionMethods.ToBsonDocument(t); IMongoQuery query = Query.EQ("_id", t.Id); col.Update(query, new UpdateDocument(bd)); }
5、条件查询(简单)
/// <summary> /// 根据ObjectID 查询 /// </summary> public static TuCao SelectOne(string objId) { //创建数据连接 MongoServer server = MongoServer.Create(conn); //获取指定数据库 MongoDatabase db = server.GetDatabase(dbName); //获取表 MongoCollection<User> col = db.GetCollection<User>(tbName); //条件查询 return col.FindOne(Query.EQ("_id", new ObjectId(objId))); }
6、查询全部
/// <summary> /// 查询所有 /// </summary> public static void SelectAll() { List<User> list = new List<User>(); //创建数据连接 MongoServer server = MongoServer.Create(conn); //获取指定数据库 MongoDatabase db = server.GetDatabase(dbName); //获取表 MongoCollection<User> col = db.GetCollection<User>(tbName); //查询全部 list.AddRange(col.FindAll()); //-------------------------------- foreach (TuCao t in col.FindAll()) { string id = t.Id.ToString(); string text = t.Text; DateTime dt = t.Createdate; } }