MongoDB的官方C#驅動可以通過這個鏈接得到。鏈接提供了.msi和.zip兩種方式獲取驅動dll文件。C#驅動的基本數據庫連接,增刪改查操作。在使用C#驅動的時候,要在工程中添加"MongoDB.Bson.dll"和"MongoDB.Driver.dll"的引用。同時要在代碼中加入下面兩個using語句。
using MongoDB.Bson.Serialization.Conventions;
using MongoDB.Driver;
using MongoDB.Driver.Linq;
using System.Text;
註冊常用約定
public static void RigisterConventions()
{
var pack = new ConventionPack();
//元素名稱序列化成駝峯形式
pack.Add(new CamelCaseElementNameConvention());
ConventionRegistry.Register("MyConventions", pack, x => true);
}
初始化Mongo幫助類
/// <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>
/// <typeparam name="T">集合類型</typeparam>
/// <param name="collectionName">集合名</param>
/// <returns></returns>
public IMongoCollection<T> GetCollection<T>(string collectionName)
{
return _database.GetCollection<T>(collectionName);
}
完整
/// <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();
}
本文分享自微信公衆號 - 一線碼農聊技術(dotnetfly)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。