C# 对MongoDB 进行增删改查的简单操作实例

时间:2022-03-07 14:10:26 

运用到的MongoDB支持的C#驱动,当前版本为1.6.0

下载地址:https://github.com/mongodb/mongo-csharp-driver/downloads

1,连接数据库


        /// <summary>
        /// 数据库连接
         /// </summary>
        private const string conn = "mongodb://127.0.0.1:27017";
        /// <summary>
        /// 指定的数据库
         /// </summary>
        private const string dbName = "mongodb_name";
        /// <summary>
        /// 指定的表
         /// </summary>
        private const string tbName = "table_text";
//创建数据连接
         MongoServer server = MongoServer.Create(conn);
            //获取指定数据库
         MongoDatabase db = server.GetDatabase(dbName);
            //获取表
         MongoCollection col = db.GetCollection(tbName);

 2、插入数据

因为MongoDB没有表的概念,所以自插入数据之前定义好自己的数据模型

User.cs

下面是添加数据的代码


        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="text">内容</param>
        /// <param name="articleId">文章ID</param>
        /// <param name="channelId">频道ID</param>
        /// <returns></returns>
        public static void Add(User t)
        {
            //创建数据连接
            MongoServer server = MongoServer.Create(conn);
            //获取指定数据库
            MongoDatabase db = server.GetDatabase(dbName);
            //获取表
            MongoCollection col = db.GetCollection(tbName);
            //插入
            col.Insert(t);

        }

3、删除操作


        /// <summary>
        /// 根据ObjectID 删除
        /// </summary>
        /// <param name="objId"></param>
        public static void Delete(string objId)
        {
            //创建数据连接
            MongoServer server = MongoServer.Create(conn);
            //获取指定数据库
            MongoDatabase db = server.GetDatabase(dbName);
            //获取表
            MongoCollection<User> col = db.GetCollection<User>(tbName);

            IMongoQuery query = Query.EQ("_id", new ObjectId(objId));

            col.Remove(query);
        }

4、修改


        /// <summary>
        /// 根据ObjectID 修改
        /// </summary>
        public static void Update(User t)
        {
            //创建数据连接
            MongoServer server = MongoServer.Create(conn);
            //获取指定数据库
            MongoDatabase db = server.GetDatabase(dbName);
            //获取表
            MongoCollection<User> col = db.GetCollection<User>(tbName);

            BsonDocument bd = BsonExtensionMethods.ToBsonDocument(t);

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

            col.Update(query, new UpdateDocument(bd));

        }

5、条件查询(简单)


        /// <summary>
        /// 根据ObjectID 查询
        /// </summary>
        public static TuCao SelectOne(string objId)
        {
            //创建数据连接
            MongoServer server = MongoServer.Create(conn);
            //获取指定数据库
            MongoDatabase db = server.GetDatabase(dbName);
            //获取表
            MongoCollection<User> col = db.GetCollection<User>(tbName);
            //条件查询           
            return col.FindOne(Query.EQ("_id", new ObjectId(objId)));
        }


6、查询全部


        /// <summary>
        /// 查询所有
        /// </summary>
        public static void SelectAll()
        {
            List<User> list = new List<User>();

            //创建数据连接
            MongoServer server = MongoServer.Create(conn);
            //获取指定数据库
            MongoDatabase db = server.GetDatabase(dbName);
            //获取表
            MongoCollection<User> col = db.GetCollection<User>(tbName);
            //查询全部
            list.AddRange(col.FindAll());

            //--------------------------------
            foreach (TuCao t in col.FindAll())
            {
                string id = t.Id.ToString();
                string text = t.Text;
                DateTime dt = t.Createdate;
            }
        }

标签:C#,MongoDB
0
投稿

猜你喜欢

  • 老生常谈Java String字符串(必看篇)

    2023-06-20 19:56:20
  • Android UI实现底部切换标签fragment

    2023-03-17 10:16:59
  • JavaWeb Servlet生命周期细枝末节处深究

    2023-08-25 22:48:23
  • Spring P标签的使用详解

    2021-09-28 22:24:14
  • c#扫描图片去黑边(扫描仪去黑边)

    2022-11-06 11:45:55
  • java实现微信红包 拼手气红包

    2023-09-28 10:31:45
  • JAVA编程不能不知道的反射用法总结

    2023-08-25 18:41:06
  • java中Integer包装类装箱的一个细节详解

    2023-09-24 18:35:32
  • 深入解析Java接口(interface)的使用

    2022-05-07 07:50:51
  • Android滑动拼图验证码控件使用方法详解

    2021-10-03 02:56:06
  • Java class文件格式之特殊字符串_动力节点Java学院整理

    2022-02-11 14:45:59
  • Java 8 lambda表达式引入详解及实例

    2022-10-25 22:41:37
  • Java之SpringBean生命周期问题理解

    2022-11-16 14:47:35
  • 关于Mybatis插入对象时空值的处理

    2023-08-28 21:58:00
  • C#对称加密(AES加密)每次生成的结果都不同的实现思路和代码实例

    2022-05-24 21:56:35
  • Windows下Java环境配置的超详细教程

    2021-12-18 19:19:16
  • java 反射机制详解及实例代码

    2023-01-31 10:26:08
  • 在.NET中读取嵌入和使用资源文件的方法

    2022-03-28 21:46:14
  • Flutter WillPopScope拦截返回事件原理示例详解

    2023-07-19 12:53:35
  • 详解kafka中的消息分区分配算法

    2021-06-02 08:16:15
  • asp之家 软件编程 m.aspxhome.com