C# 操作mongodb 簡單實例


  本實例主要簡單的查詢,新增,修改和刪除操作,完整代碼如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
using MongoDB.Bson;
using MongoDB.Driver;
using MongoDB.Bson.Serialization.Attributes;
using System.Linq.Expressions;
using MongoDB.Driver.Builders;
using MongoDB.Driver.Linq;
using System.Configuration;


namespace mongoDbOper
{
    public class DBHelper
    {
        /// <summary>
        /// mongodb數據庫連接字符串
        /// </summary>
        private static string dbConnectStr = "mongodb://127.0.0.1:27017";
        /// <summary>
        /// 指定的數據庫
        /// </summary>
        private static string dbName = "OTT_DB";
        /// <summary>
        /// 展會信息表
        /// </summary>
        private static string tbNameM = "Meeting";
        /// <summary>
        /// 行業資訊表
        /// </summary>
        private static string tbNameC = "Information";
        /// <summary>
        /// 訂閱用戶表
        /// </summary>
        private static string tbNameUser = "User";
        /// <summary>
        /// 已發送展會信息表
        /// </summary>
        private static string tbNameMCK = "MeetingCK";
        /// <summary>
        /// 已發送行業資訊表
        /// </summary>
        private static string tbNameICK = "InfoCK";

        private static MongoDatabase db = null;

        /// <summary>
        /// 用戶審核通過
        /// </summary>
        private static string userPass = "通過";
        /// <summary>
        /// 用戶未審核通過,待審核
        /// </summary>
        private static string userNoPass = "審核";
        /// <summary>
        /// 初始化mongodb數據庫
        /// </summary>
        public static void InitDB()
        {
            var connStr = string.IsNullOrEmpty(ConfigurationManager.AppSettings["mongodbServer"]) ? dbConnectStr : ConfigurationManager.AppSettings["mongodbServer"].ToString();

            userPass = string.IsNullOrEmpty(ConfigurationManager.AppSettings["pass"]) ? userPass : ConfigurationManager.AppSettings["pass"].ToString();
            userNoPass = string.IsNullOrEmpty(ConfigurationManager.AppSettings["pass"]) ? userNoPass : ConfigurationManager.AppSettings["nonpass"].ToString();

            //創建數據連接  
            //var server = MongoServer.Create(connStr);
            var server = new MongoClient(connStr).GetServer();
            //獲取指定數據庫
            db = server.GetDatabase(dbName);
        }


       

        #region 獲取最近三個月的會議活動
        /// <summary>
        /// 獲取最近三個月的會議活動
        /// </summary>
        public static void GetMeeting()
        {
            if (db == null)
            {
                InitDB();
            }
            string startdate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd");
            string enddate = DateTime.Now.AddDays(90).ToString("yyyy-MM-dd");

            MongoCollection<Meeting> col = db.GetCollection<Meeting>("Meeting");
            var result = col.FindAll().Where(a => Convert.ToDateTime(a.startdate) > Convert.ToDateTime(startdate) &&
                Convert.ToDateTime(a.enddate) <= Convert.ToDateTime(enddate));

            var lst = new List<Meeting>();
            foreach (Meeting info in result)
            {
                info.ID = info.Id.ToString();
                lst.Add(info);
            }
            var json = lst.ToJson();

            Console.WriteLine(json);
            Console.Read();
        }
        #endregion

        #region 保存新訂閱用戶信息
        /// <summary>
        /// 保存新訂閱用戶信息
        /// </summary>
        /// <param name="user">要保存的用戶信息實體</param>
        /// <param name="tbName">表名,默認:User</param>
        /// <returns>返回bool ,true保存成功;false保存失敗</returns>
        public static bool InsertUser(User user = null, String tbName = "User")
        {
            if (db == null)
            {
                InitDB();
            }
            User user1 = new User();
            user1.name = "test";
            user1.email = "test@ctrchina.cn";
            user1.tel = "13388989998";
            user1.company = "CTR";
            user1.position = "總監";
            user1.isPass = "通過";
            MongoCollection<User> col = db.GetCollection<User>(tbName);
            WriteConcernResult result = col.Insert(user1);
            Console.WriteLine(result.Ok);
            Console.Read();
            return result.Ok;
        }
        #endregion

        #region 修改訂閱用戶信息
        /// <summary>
        /// 修改訂閱用戶信息
        /// </summary>
        /// <param name="user">訂閱用戶信息實體</param>
        /// <param name="tbName">表名,默認是User</param>
        /// <returns>返回bool ,true:修改成功;false:修改失敗</returns>
        public static bool UpdateUser(User user = null, String tbName = "User")
        {
            if (db == null)
            {
                InitDB();
            }
            if (user == null)
            {
                user = new User();
                user.Id = new ObjectId("5965dfd22ed9257eccc36494");
                user.position = "總經理111總監";
                user.tel = "166677777777";
            }
            MongoCollection<User> col = db.GetCollection<User>(tbName);
            BsonDocument userSave = BsonExtensionMethods.ToBsonDocument(user);

            IMongoQuery query = Query.EQ("_id", user.Id);

            WriteConcernResult result = col.Update(query, new UpdateDocument(userSave));
            Console.WriteLine(result.Ok);
            Console.Read();
            return result.Ok;
        }
        #endregion

        #region 刪除訂閱用戶信息
        /// <summary>
        /// 刪除訂閱用戶信息
        /// </summary>
        /// <param name="id">信息ID(唯一)</param>
        /// <param name="tbName">表名,默認是User</param>
        /// <returns>返回bool ,true:刪除成功;fals:e刪除失敗</returns>
        public static bool DeleteUser(String id = "5965dfd22ed9257eccc36494", String tbName = "User")
        {
            if (db == null)
            {
                InitDB();
            }
            MongoCollection<Information> col = db.GetCollection<Information>(tbName);
            IMongoQuery query = Query.EQ("_id", new ObjectId(id));

            WriteConcernResult result = col.Remove(query);
            Console.WriteLine(result.Ok);
            Console.Read();
            return result.Ok;
        }
        #endregion

    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM