.Net使用Mongodb增删改查演示

类图:

这里写图片描述

Customer.cs实体类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MongoDB.Bson;

namespace MongoDemo
{
    public class Customer
    {
        public ObjectId _id { get; set; }
        public ObjectId CustomerId { get; set; }
        public string CustomerName { get; set; }
        public string ContactName { get; set; }
        public string Address { get; set; }
        public string PostalCode { get; set; }
        public string Telephone { get; set; }
    }
}

CustomerHelper.cs

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MongoDB.Bson;
using MongoDB.Driver;

namespace MongoDemo
{
    public class CustomerHelper
    {
        public static void Insert(Customer customer)
        {
            customer.CustomerId = new ObjectId(Guid.NewGuid().ToString("N"));

            // 首先创建一个连接
            MongoClient mongo = new MongoClient(ConfigHelper.ConnectionString);
            var dataBase = mongo.GetDatabase(ConfigHelper.DataBaseName);

            // 根据类型获取相应的集合
            var collection = dataBase.GetCollection<Customer>("Customer");
            // 向集合中插入对象
            collection.InsertOne(customer);
        }

        public static void Delete(ObjectId customerId)
        {
            MongoClient mongo = new MongoClient(ConfigHelper.ConnectionString);
            var dataBase = mongo.GetDatabase(ConfigHelper.DataBaseName);
            var collection = dataBase.GetCollection<Customer>("Customer");
            collection.DeleteOne(item => item.CustomerId == customerId);  //唯一Id确保只删除一条记录
        }

        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="customer"></param>
        public static void Update(Customer customer)
        {
            MongoClient mongo = new MongoClient(ConfigHelper.ConnectionString);
            var dataBase = mongo.GetDatabase(ConfigHelper.DataBaseName);
            var collection = dataBase.GetCollection<Customer>("Customer");
            var filter = Builders<Customer>.Filter.Eq("CustomerId", customer.CustomerId);
            var update = Builders<Customer>.Update
                .Set("CustomerName", "腾讯科技")
                .Set("Telephone", "1389999999")
                .CurrentDate("lastModified");
            collection.UpdateOne(filter, update);
        }

        public static List<Customer> Find(QueryDocument query)
        {
            MongoClient mongo = new MongoClient(ConfigHelper.ConnectionString);
            var dataBase = mongo.GetDatabase(ConfigHelper.DataBaseName);
            var collection = dataBase.GetCollection<Customer>("Customer");
            List<Customer> list = collection.Find(query).ToList();
            return list;
        }
    }
}

UploadHelper.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MongoDB.Driver;
using MongoDB.Driver.GridFS;

namespace MongoDemo
{
    public class UploadHelper
    {
        /// <summary>
        /// 上传文件测试方法
        /// </summary>
        /// <returns></returns>
        public static bool Upload()
        {
            MongoServerSettings mongoSetting = new MongoServerSettings();
            mongoSetting.MaxConnectionPoolSize = 15000;//设定最大连接池
            mongoSetting.WaitQueueSize = 500;//设定等待队列数
            mongoSetting.Server = new MongoServerAddress("192.168.1.176", 27017);
            MongoServer mongo = new MongoServer(mongoSetting);

            MongoGridFSSettings fsSetting = new MongoGridFSSettings() { Root = "DocPdf" };

            //实例化一个GridFS
            MongoGridFS gridfs = new MongoGridFS(mongo, ConfigHelper.DataBaseName, fsSetting);

            //将本地文件上传到mongoDB中去,以默认块的大小256KB对文件进行分块
            gridfs.Upload("100100.pdf", "Test.pdf");
            return true;
        }

        public static void DownLoad()
        {
            MongoServerSettings mongoSetting = new MongoServerSettings();
            mongoSetting.MaxConnectionPoolSize = 15000;//设定最大连接池
            mongoSetting.WaitQueueSize = 500;//设定等待队列数
            mongoSetting.Server = new MongoServerAddress("127.0.0.1", 27017);
            MongoServer mongo = new MongoServer(mongoSetting);

            MongoDatabase dataBase = mongo.GetDatabase(ConfigHelper.DataBaseName);
            MongoGridFSSettings fsSetting = new MongoGridFSSettings() { Root = "DocPdf" };


            //获取文件值
            string moFileName = "Test.pdf";
            //获取图片名
            //通过文件名去数据库查值
            MongoGridFS fs = new MongoGridFS(dataBase, fsSetting);
            MongoGridFSFileInfo gfInfo = new MongoGridFSFileInfo(fs, moFileName);
            //方法一,很简洁
            string fileName = Guid.NewGuid().ToString() + ".pdf";
            fs.Download(fileName, moFileName);
        }
    }
}

ConfigHelper.cs

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MongoDemo
{
    /// <summary>
    /// 初始化配置文件数据
    /// </summary>
    public class ConfigHelper
    {
        /// <summary>
        /// MongoDb数据链链接地址
        /// </summary>
        public static string ConnectionString { get; set; }

        /// <summary>
        /// MongoDb数据库
        /// </summary>
        public static string DataBaseName { get; set; }

        /// <summary>
        /// 初始化配置文件数据
        /// </summary>
        public static void Init()
        {
            ConnectionString = ConfigurationManager.AppSettings["MongoDbServer"];
            DataBaseName = ConfigurationManager.AppSettings["DataBaseName"];

        }
    }
}

Program.cs

using MongoDB.Bson;
using MongoDB.Driver;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MongoDB.Driver.GridFS;

namespace MongoDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            //初始化配置文件
            ConfigHelper.Init();

            try
            {
                #region 插入数据测试(注意数据量是100W条)
                //int start = Environment.TickCount;
                //for (int index = 0; index < 1000000; index++)
                //{
                //    Customer customer = new Customer()
                //    {
                //        Address = "上海长宁区",
                //        ContactName = "0755-12345678",
                //        CustomerName = "上海动物园" + (index + 1).ToString(),
                //        PostalCode = "518000",
                //        Telephone = "1388888888888"
                //    };
                //    CustomerHelper.Insert(customer);
                //}
                //int end = Environment.TickCount;
                //Console.WriteLine("100000行数据处理耗时" + (end - start).ToString() + "ms");
                #endregion

                #region 更新
                //Customer customer = new Customer()
                //{
                //    Address = "深圳南山区",
                //    ContactName = "0755-12345678",
                //    CustomerName = "腾讯科技",
                //    PostalCode = "518000",
                //    Telephone = "1389999999",
                //    CustomerId = "c57e40ea343b4154ae3641e224525602"
                //};

                //CustomerHelper.Update(customer);
                #endregion


                #region 查询
                //var query = new QueryDocument { { "CustomerName", "中科软3" } };
                var query = new QueryDocument { { "CustomerId", new ObjectId("9cc11fa2aa7f400aba9a0649") } };
                var list = CustomerHelper.Find(query);
                #endregion

                CustomerHelper.Delete(new ObjectId("7f10ea7d8abf4c0285620f49"));



                MongoServerSettings mongoSetting = new MongoServerSettings();
                mongoSetting.MaxConnectionPoolSize = 15000;//设定最大连接池
                mongoSetting.WaitQueueSize = 500;//设定等待队列数
                mongoSetting.Server = new MongoServerAddress("127.0.0.1", 27017);
                int count = MongoServer.MaxServerCount;
                MongoServer mongo=new MongoServer(mongoSetting);

                MongoDatabase dataBase = mongo.GetDatabase(ConfigHelper.DataBaseName);
                MongoGridFSSettings fsSetting = new MongoGridFSSettings() { Root = "DocPdf" };

                //实例化一个GridFS
                MongoGridFS gridfs = new MongoGridFS(dataBase, fsSetting);

                //将本地文件上传到mongoDB中去,以默认块的大小256KB对文件进行分块
                //gridfs.Upload("100100.pdf", "Test.pdf");


                //获取文件值
                string moFileName = "Test.pdf";
                //获取图片名
                //通过文件名去数据库查值
                MongoGridFS fs = new MongoGridFS(dataBase, fsSetting);
                MongoGridFSFileInfo gfInfo = new MongoGridFSFileInfo(fs, moFileName);
                //方法一,很简洁
                string fileName = Guid.NewGuid().ToString() + ".pdf";
                fs.Download(fileName, moFileName);
                Console.ReadLine();

            }
            catch (Exception e)
            {

                throw;
            }
        }
    }
}

运行结果如图:

(根据需要把注释代码还原)
这里写图片描述


这里写图片描述


这里写图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值