MongoDb C# Wrapper Version (MongoDb Driver 1.9)

黄舟
Freigeben: 2017-03-01 10:45:39
Original
1495 Leute haben es durchsucht

1. MongoDb-Treiberpaket installieren

2. Wrapper-Klasse verwenden:

 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();
        }
    }
Nach dem Login kopieren

3 Einige Verwendungsbeispiele für verwandte Vorgänge

查询
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);
Nach dem Login kopieren

Das Obige ist MongoDb Inhalt der C#-Wrapper-Klasse (MongoDb-Treiber 1.9). Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage