MongoDB的官方C#驱动可以通过这个链接得到。链接提供了.msi和.zip两种方式获取驱动dll文件。C#驱动的基本数据库连接,增删改查操作。在使用C#驱动的时候,要在工程中添加"MongoDB.Bson.dll"和"MongoDB.Driver.dll"的引用。同时要在代码中加入下面两个using语句。
# l. l- W' y4 f, c using MongoDB.Bson.Serialization.Conventions;
using MongoDB.Driver;
using MongoDB.Driver.Linq;
using System.Text;
4 g" Y' q# i. @' Q1 Z 注册常用约定 - n& ]3 X/ Z: h4 F& s, V5 h5 G8 j
public static void RigisterConventions()
{
var pack = new ConventionPack();
//元素名称序列化成驼峰形式
pack.Add(new CamelCaseElementNameConvention());
ConventionRegistry.Register("MyConventions", pack, x => true);
}
1 z8 E0 P. Z2 t4 t! `1 O5 g ^ [+ G 初始化Mongo帮助类 1 I. ~+ y) n( ]2 ?* p6 x2 E
/// <summary>
/// 初始化Mongo帮助类
/// </summary>
/// <param name="connectionString">连接字符串</param>
/// <param name="dbName">数据库名</param>
public MongoHelper(string connectionString, string dbName)
{
_client = new MongoClient(connectionString);
_database = _client.GetDatabase(dbName);
}
% z+ M8 S7 Y9 y6 ~ Z; Y0 H
获取集合 / }" q8 }5 V6 q9 S9 Z
/// <summary>
/// 获取集合
/// </summary>
/// <typeparam name="T">集合类型</typeparam>
/// <param name="collectionName">集合名</param>
/// <returns></returns>
public IMongoCollection<T> GetCollection<T>(string collectionName)
{
return _database.GetCollection<T>(collectionName);
}
. ~) N5 l% x0 }+ Y" V 完整代码 / ~" u. @' n" ~0 I) r7 `: t0 X
/// <summary>
/// MongoDB访问帮助类
/// </summary>
public class MongoHelper
{
private MongoClient _client;
private IMongoDatabase _database;
/// <summary>
/// 注册常用约定
/// </summary>
public static void RigisterConventions()
{
var pack = new ConventionPack();
//元素名称序列化成驼峰形式
pack.Add(new CamelCaseElementNameConvention());
ConventionRegistry.Register("MyConventions", pack, x => true);
}
/// <summary>
/// 初始化Mongo帮助类
/// </summary>
/// <param name="connectionString">连接字符串</param>
/// <param name="dbName">数据库名</param>
public MongoHelper(string connectionString, string dbName)
{
_client = new MongoClient(connectionString);
_database = _client.GetDatabase(dbName);
}
/// <summary>
/// 数据库
/// </summary>
public IMongoDatabase Db => _database;
/// <summary>
/// 获取集合
/// </summary>
/// <typeparam name="T">集合类型</typeparam>
/// <param name="collectionName">集合名</param>
/// <returns></returns>
public IMongoCollection<T> GetCollection<T>(string collectionName)
{
return _database.GetCollection<T>(collectionName);
}
/// <summary>
/// 获取Queryable对象
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="collectionName">集合名</param>
/// <returns></returns>
public IMongoQueryable<T> GetQueryable<T>(string collectionName)
{
return GetCollection<T>(collectionName).AsQueryable();
}
/// <summary>
/// 模糊查询转换特殊字符:正则表达式有以下特殊字符。需要转义 * . ? + $ ^ [ ] ( ) { } | \ /
/// 如:{"phone":/U9G\/XoDNo8ozbwbxal\+Qzg==/}
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string ChangeSpecialCharacter(string str)
{
if (string.IsNullOrEmpty(str))
return str;
StringBuilder retValue = new StringBuilder();
string str1 = "*.?+$^[](){}|\\/";
for (int i = 0; i < str.Length; i++)
{
string ss = str[i].ToString();
if (str1.Contains(ss))
{
ss = "\" + ss;
}
retValue.Append(ss);
}
return retValue.ToString();
}
% \# E: R2 V% e' I0 _+ ?) ^