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);
}
/// <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;
}
}