之前使用C#对MongoDB进行操作,查找了一些资料,最后总结了这个类,记录一下以备以后使用。
需要引用MongoDB.Driver.dll、MongoDB.Bson.dll、MongoDB.dll三个文件。如果没有的话,可以在https://pan.baidu.com/s/1qXQz7JI 下载。
以下为类的代码:
using MongoDB.Driver;
using MongoDB.Bson;
using MongoDB.Driver.Builders;
public static class MongoHelperNew
{
//服务器地址
public static readonly string connectionString = "mongodb://用户名:密码@数据库IP:27017";
//数据库名称
public static readonly string databaseName = "数据库名称";
public static MongoCursor<BsonDocument> Search(String collectionName, IMongoQuery query)
{
//定义Mongo服务
MongoServer server = MongoServer.Create(connectionString);
//获取databaseName对应的数据库,不存在则自动创建
MongoDatabase mongoDatabase = server.GetDatabase(databaseName);
MongoCollection<BsonDocument> collection = mongoDatabase.GetCollection<BsonDocument>(collectionName);
try
{
if (query == null)
return collection.FindAll();
else
return collection.Find(query);
}
finally
{
server.Disconnect();
}
}
/// <summary>
/// 新增
/// </summary>
public static Boolean Insert(String collectionName, BsonDocument document)
{
MongoServer server = MongoServer.Create(connectionString);
MongoDatabase mongoDatabase = server.GetDatabase(databaseName);
MongoCollection<BsonDocument> collection = mongoDatabase.GetCollection<BsonDocument>(collectionName);
try
{
collection.Insert(document);
server.Disconnect();
return true;
}
catch
{
server.Disconnect();
return false;
}
}
/// <summary>
/// 修改
/// </summary>
public static Boolean Update(String collectionName, IMongoQuery query, IMongoUpdate new_doc)
{
MongoServer server = MongoServer.Create(connectionString);
MongoDatabase mongoDatabase = server.GetDatabase(databaseName);
MongoCollection<BsonDocument> collection = mongoDatabase.GetCollection<BsonDocument>(collectionName);
try
{
collection.Update(query, new_doc);
server.Disconnect();
return true;
}
catch
{
server.Disconnect();
return false;
}
}
/// <summary>
/// 移除
/// </summary>
public static Boolean Remove(String collectionName, IMongoQuery query)
{
MongoServer server = MongoServer.Create(connectionString);
MongoDatabase mongoDatabase = server.GetDatabase(databaseName);
MongoCollection<BsonDocument> collection = mongoDatabase.GetCollection<BsonDocument>(collectionName);
try
{
collection.Remove(query);
server.Disconnect();
return true;
}
catch
{
server.Disconnect();
return false;
}
}
}
调用的方法如下:
// 查询操作
List<表model类> lst = new List<表model类>();
foreach (BsonDocument tmp in MongoHelperNew.Search("表名称", MongoDB.Driver.Builders.Query.EQ("字段名", 值)))
{
表model类 表对象 = new 表model类();
表对象.属性1 = tmp.Contains("字段1") && tmp["字段1"] != null ? tmp["字段1"].AsString : "";
if (tmp.Contains("字段2") && tmp["字段2"] != null)
{
表对象.属性2 = tmp["字段2"].AsInt64;
}
...
表对象.属性N = tmp.Contains("字段N") && tmp["字段N"] != null ? tmp["字段N"].AsString : "";
lst.Add(表对象);
}
// 新增操作
BsonDocument dom = new BsonDocument();
dom.Add(new BsonElement("字段1", 字段1值));
dom.Add(new BsonElement("字段2", 字段2值));
...
dom.Add(new BsonElement("字段N", 字段N值));
MongoHelperNew.Insert("Jobinfo", dom);
// 更新操作
// 设置更新的条件(相当于sql语句中的 where 主键/某个字段=值)
// 也可以使用 IMongoQuery query = MongoDB.Driver.Builders.Query.EQ("主键/某个字段", 值)
// MongoDB.Driver.Builders.Query好多方法可以使用,可以仔细参考一下
IMongoQuery query = new QueryDocument("主键/某个字段", 值);
// 设置要更新的字段(相当于sql语句中的 set 字段1=字段1值, 字段2=字段2值)
var updateValues = new List<MongoDB.Driver.Builders.UpdateBuilder>();
updateValues.Add(MongoDB.Driver.Builders.Update.
Set("字段1", 字段1值).
Set("字段2", 字段2值).
...
Set("字段N", 字段N值)
);
IMongoUpdate up = new UpdateDocument();
up = MongoDB.Driver.Builders.Update.Combine(updateValues);
MongoHelperNew.Update("表名", query, up);
// 删除操作
IMongoQuery query = new QueryDocument("主键/某个字段", 值);
MongoHelperNew.Remove("表名", query);
目前只使用到增删查改,至于其他的应用,以后用到的时候再整理。
知行办公,专业移动办公平台 https://zx.naton.cn/
【总监】十二春秋之,3483099@qq.com;
【Master】zelo,616701261@qq.com;
【运营】运维艄公,897221533@qq.com;
【产品设计】流浪猫,364994559@qq.com;
【体验设计】兜兜,2435632247@qq.com;
【iOS】淘码小工,492395860@qq.com;iMcG33K,imcg33k@gmail.com;
【Android】人猿居士,1059604515@qq.com;思路的顿悟,1217022114@qq.com;
【java】首席工程师MR_W,feixue300@qq.com;
【测试】土镜问道,847071279@qq.com;
【数据】fox009521,42151960@qq.com;
【安全】保密,你懂的。