MongoDb C# Wrapper 类 (MongoDb Driver 1.9)
来源:互联网 发布:物联网域名 编辑:程序博客网 时间:2024/05/16 09:11
1.安装 mongoDb Driver package
2. 使用Wrapper 类:
public class MongoDbWrapper : IDisposable { private MongoServer _server; private MongoDatabase _db; public MongoDbWrapper() { var uri = ConfigurationSettings.AppSettings["mongoUrl"]; var url = new MongoUrl(uri); var client = new MongoClient(url); _server = client.GetServer(); _db = _server.GetDatabase(url.DatabaseName); } public MongoDbWrapper BatchAdd<T>(T[] objArray, string collectionName) { var collection = _db.GetCollection<T>(collectionName); collection.InsertBatch(objArray); return this; } public MongoDbWrapper Add<T>(T obj, string collectionName) { var collection = _db.GetCollection<T>(collectionName); collection.Insert(obj); return this; } /// <summary> /// e.g. { "Age", new BsonDocument { { "$gte", 10 } } } /// </summary> /// <param name="query"></param> /// <param name="collectionName"></param> public void DeleteBy<T>(Expression<Func<T, bool>> whereExp, string collectionName) { var collection = _db.GetCollection<T>(collectionName); collection.Remove(Query<T>.Where(whereExp)); } public void Update<T>(IMongoQuery query, string collectionName, T newObj) where T : IMongoUpdate { var collection = _db.GetCollection<T>(collectionName); collection.Update(query, newObj); } public IEnumerable<T> Search<T>(Expression<Func<T, bool>> whereExp, string collectionName) { var collection = _db.GetCollection<T>(collectionName); return collection.Find(Query<T>.Where(whereExp)).ToList(); } public T Single<T>(Expression<Func<T, bool>> whereExp, string collectionName) { return Search(whereExp, collectionName).Single(); } public void RemoveCollection(string collectionName) { _db.DropCollection(collectionName); } public void Dispose() { _server.Disconnect(); } }
3 一些相关操作的用法示例
查询var driver = dbWrapper.Single<Driver>(d => d.Name == name, DbCollectionName.For<Driver>());var drivers = dbWrapper.Search<Driver>(d => d.Name == name, DbCollectionName.For<Driver>());删除dbWrapper.DeleteBy<Job>(j => j.Id == id, DbCollectionName.For<PublicQueue>());从集合移除var updatingNw = Update<Network>.Pull(nw => nw.Jobs, aJobFromQueue); dbWrapper.Update(Query<Network>.Where(n => n.Name == Name), DbCollectionName.For<Network>(), updatingNw);添加新项到集合var updatingDp = Update<Dispatcher>.AddToSet<dynamic>(d => d.PendingJobs, aJobFromQueue); dbWrapper.Update(Query<Dispatcher>.Where(d => d.Name == name), DbCollectionName.For<Dispatcher>(), updatingDp);更新dbWrapper.Update(Query<Network>.Where(n => n.Name == Name), DbCollectionName.For<Network>(), updatingNw);
0 0
- MongoDb C# Wrapper 类 (MongoDb Driver 1.9)
- Mongodb学习一,开始使用C# Driver操作Mongodb
- MongoDB c++ driver(一)
- MongoDB c++ driver(二)
- MongoDB c++ driver(三)
- MongoDB c++ driver(四)
- MongoDB c++ driver(五)
- MongoDB c++ driver(六)
- MongoDB c++ driver(七)
- 扩展MongoDB C# Driver的QueryBuilder
- c# mongodb driver 插入重复记录
- MongoDB C# Driver 使用示例 (2.2)
- MongoDB C# Driver 使用示例 (2.2)
- MongoDB C++ 驱动部分问题解决方案(MongoDB C++ Driver)
- VS2015编译连接mongodb(mongodb C++ driver)
- MongoDB学习日记 - java代码(一):mongodb driver
- 坑爹的mongodb异步驱动(mongodb-async-driver)
- C# MongoDB操作类
- 深入理解网络编程(二)
- android基本控件EditText
- SOCKET中INADDR_LOOPBACK和INADDR_ANY的区别
- 用户登录界面(代码)
- 支持向量机通俗导论(理解SVM的三层境界)
- MongoDb C# Wrapper 类 (MongoDb Driver 1.9)
- zookeeper安装和集群搭建
- 输入字符串以及输出
- 关于web app 背景图片兼容问题
- 游戏中对声音audio的管理
- mstar PQ软件修改方法
- TCP/IP详解--TCP首部选项字段的作用
- HOG+SVM
- placement new c++