Maison > développement back-end > Tutoriel C#.Net > MongoDb C# Wrapper ici (Pilote MongoDb 1.9)

MongoDb C# Wrapper ici (Pilote MongoDb 1.9)

黄舟
Libérer: 2017-03-01 10:45:39
original
1525 Les gens l'ont consulté

1. Installez le package de pilotes mongoDb

2. Utilisez la classe 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();
        }
    }
Copier après la connexion

3 Quelques exemples d'utilisation d'opérations associées

查询
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);
Copier après la connexion

Ce qui précède est MongoDb. Contenu de la classe C# Wrapper (MongoDb Driver 1.9), pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (m.sbmmt.com) !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal