1. 程式人生 > >mongodb在C#的連接以及curd寫法

mongodb在C#的連接以及curd寫法

AD new 查詢 條件 date collect 連接數 tps setting

連接數據庫:參考地址:https://blog.oz-code.com/how-to-mongodb-in-c-part-2/

        // Empty ctor will get you a 
        // client with a default localhost and port #27017
        MongoClient m = new MongoClient();
        //----------------------------------------------------------------------
        // Using a connection-string
MongoClient m1 = new MongoClient("mongodb://localhost:27017"); //---------------------------------------------------------------------- // Using MongoClientSettings MongoClient client = new MongoClient( new MongoClientSettings { Server = new MongoServerAddress("
localhost", 27018), // Giving 3 seconds for a MongoDB server to be up before we throw ServerSelectionTimeout = TimeSpan.FromSeconds(3) }); //---------------------------------------------------------------------- // Using MongoUrl MongoClient client1 = new
MongoClient( MongoUrl.Create("mongodb://localhost:27017")); }

CURD:

MongoClient mongoClient = new MongoClient(configuration["DataBaseConnection:0:host"]);
                var dbAdmin = mongoClient.GetDatabase("shoppingMall");
                var buyerCollection = dbAdmin.GetCollection<Buyer>("shoppingMall.buyer");
                //新增
                ////var a= buyerCollection.InsertOneAsync(new Buyer { buyerName="管理員", buyerAge=23, buyerAddress="江漢市天府大道067號", buyerSex=‘0‘, buyerIdCard="12355544884474", buyerHeadPortrait="~/images/admin.jpg", buyerAccountNumber="admin1" });
                //查詢
                //linq寫法
                //var sql = from bb in buyerCollection.AsQueryable()
                //          select bb;
                //sql= sql.Where(t => t.buyerAge >= 22);
                //var retlist = sql.ToList();
                //ef寫法
                //var ret = buyerCollection.AsQueryable().GroupBy(t=>new { t.buyerAge }).Where(t=>t.Key.buyerAge>=22);
                //var b = ret.ToList();

                var filterBuilder = Builders<Buyer>.Filter;
                var filter = filterBuilder.Gt("buyerAge", 10) & filterBuilder.Lt("counter", 30) & filterBuilder.Lt("counter", 30);//多個條件

                //var filter = Builders<Buyer>.Filter.Gt("buyerAge", 1);//一個條件 
                var document = await buyerCollection.FindAsync(filter);
                var res = document.ToList();

                //更新
                var updateFilter = filterBuilder.Gt("buyerAge", 20) & filterBuilder.Lt("buyerAge", 30);//多個條件

                var updated = Builders<Buyer>.Update.Set("buyerName", "李四");
                var result = buyerCollection.UpdateManyAsync(updateFilter, updated).Result;


                //刪除
                var delFilter = filterBuilder.Gt("buyerAge", 20) & filterBuilder.Lt("buyerAge", 30);//多個條件

                var resut = buyerCollection.DeleteManyAsync(delFilter).Result;

其中:

configuration["DataBaseConnection:0:host"]屬於。netcore的連接字符串寫法。具體實現如下:

appsettings.json:

"DataBaseConnection": [
    {
      "host": "mongodb://localhost:27017"
    }
  ]

讀取方法:

        public IConfigurationRoot configuration;
        public BaseController()
        {
            //讀取appsettings配置
            var builder = new ConfigurationBuilder()
        .SetBasePath(Directory.GetCurrentDirectory())
        .AddJsonFile("appsettings.json");
            configuration = builder.Build();
        }

mongodb在C#的連接以及curd寫法