志在指尖
用双手敲打未来

C#使用Mongodb方法

usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingMongoDB.Driver;
usingMongoDB.Bson;
usingMongoDB.Bson.Serialization.Attributes;
usingSystem.Linq.Expressions;
namespaceLangu.DbHelperC#
{
///
///MongoDb数据库操作类
///
publicclassMongoHelperwhereT:BaseEntity
{
///
///数据库目标
///
privateIMongoDatabasedatabase;
///
///构造函数
///
///衔接字符串
publicMongoHelper(StringconString)
{
varurl=newMongoUrl(conString);
MongoClientSettingsmcs=MongoClientSettings.FromUrl(url);
mcs.MaxConnectionLifeTime=TimeSpan.FromMilliseconds(1000);
varclient=newMongoClient(mcs);
this.database=client.GetDatabase(url.DatabaseName);
}
///
///创建调集目标
///
///调集称号
///调集目标
privateIMongoCollectionGetColletion(StringcollName)
{
returndatabase.GetCollection(collName);
}
#region添加
///
///刺进目标
///
///调集称号
///刺进的目标
publicvoidInsert(StringcollName,Tt)
{
varcoll=GetColletion(collName);
coll.InsertOne(t);
}
///
///批量刺进
///
///调集称号
///要刺进的目标调集
publicvoidInsertBath(StringcollName,IEnumerablets)
{
varcoll=GetColletion(collName);
coll.InsertMany(ts);
}
#endregion
#region删去
///
///按BsonDocument条件删去
///
///调集称号
///文档
///
publicInt64Delete(StringcollName,BsonDocumentdocument)
{
varcoll=GetColletion(collName);
varresult=coll.DeleteOne(document);
returnresult.DeletedCount;
}
///
///按json字符串删去
///
///调集称号
///json字符串
///
publicInt64Delete(StringcollName,Stringjson)
{
varcoll=GetColletion(collName);
varresult=coll.DeleteOne(json);
returnresult.DeletedCount;
}
///
///按条件表达式删去
///
///调集称号
///条件表达式
///
publicInt64Delete(StringcollName,Expression>predicate)
{
varcoll=GetColletion(collName);
varresult=coll.DeleteOne(predicate);
returnresult.DeletedCount;
}
///
///按检索条件删去
///建议用Builders构建复杂的查询条件
///
///调集称号
///条件
///
publicInt64Delete(StringcollName,FilterDefinitionfilter)
{
varcoll=GetColletion(collName);
varresult=coll.DeleteOne(filter);
returnresult.DeletedCount;
}
#endregion
#region修正
///
///修正文档
///
///调集称号
///修正条件
///修正成果
///是否刺进新文档(filter条件满意就更新,不然刺进新文档)
///
publicInt64Update(StringcollName,Expression>filter,UpdateDefinitionupdate,Booleanupsert=false)
{
varcoll=GetColletion(collName);
varresult=coll.UpdateMany(filter,update,newUpdateOptions{IsUpsert=upsert});
returnresult.ModifiedCount;
}
///
///用新目标替换新文档
///
///调集称号
///修正条件
///新目标
///是否刺进新文档(filter条件满意就更新,不然刺进新文档)
///修正影响文档数
publicInt64Update(StringcollName,Expression>filter,Tt,Booleanupsert=false)
{
varcoll=GetColletion(collName);
BsonDocumentdocument=t.ToBsonDocument();
document.Remove(“_id”);
UpdateDocumentupdate=newUpdateDocument(“$set”,document);
varresult=coll.UpdateMany(filter,update,newUpdateOptions{IsUpsert=upsert});
returnresult.ModifiedCount;
}
#endregion
///
///查询,复杂查询直接用Linq处理
///
///调集称号
///要查询的目标
publicIQueryableGetQueryable(StringcollName)
{
varcoll=GetColletion(collName);
returncoll.AsQueryable();
}
#region查询
#endregion
}
///
///实体基类,方便生成_id
///
publicclassBaseEntity
{
[BsonRepresentation(BsonType.ObjectId)]
publicStringId{get;set;}
///
///给目标初值
///
publicBaseEntity()
{
this.Id=ObjectId.GenerateNewId().ToString();
}
}
}
调用方法:
[C#]纯文本检查
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingLangu.DbHelper;
usingSystem.Threading;
usingSystem.Linq.Expressions;
usingMongoDB.Driver;
namespaceClient
{
classProgram
{
staticvoidMain(string[]args)
{
//衔接字符串127.0.0.1服务器IP27100mongodb服务端口号mydb数据库称号
StringconString=”mongodb://127.0.0.1:27100/mydb”;
//实例化MongoHelper目标(泛型版别),构造函数要求传入衔接字符串
MongoHelpermongoHelper=newMongoHelper(conString);
//查询调集user中有多少数据量
varcnt=mongoHelper.GetQueryable(“user”).Count();
Console.WriteLine(cnt);
Console.ReadKey();
}
}
internalclassUser:BaseEntity
{
publicintAge{get;set;}
publicStringName{get;set;}
}
}

未经允许不得转载:IT技术网站 » C#使用Mongodb方法
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载