Mongodb c#增删改查

写在前面

最近项目需要,就研究了下mongodb,也是为了快速上手,就自己弄了一个简单的例子,这里记录一下。

Mongodb

传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。MongoDB对于关系型数据库里的表,但是集合中没有列、行和关系概念,这体现了模式自由的特点。

那么在c#如何使用呢?下面看个例子,你会发现上手非常简单。

要操作数据库,首先考虑的就是连接字符串的问题,因为这就相当于你从那儿拿数据,先要有路子才行。

MongoDB 标准连接字符串

mongodb://[username:[email protected]]host1[:port1][,host2[:port2],…[,hostN[:portN]]][/[database][?options]]

mongodb:// 是连接字串必须的前缀字串。

username:[email protected] 可选项,连接到数据库后会尝试验证登陆。

host1 必须的指定至少一个host。

:portX 可选项,默认连接到27017

/database 如果指定username:[email protected],连接并验证登陆指定数据库。若不指定,默认打开admin数据库。

?options 是连接选项。如果不使用/database,则前面需要加上/。所有连接选项都是键值对name=value,键值对之间通过&或;(分号)隔开。

关于options可参考官网的东西。

说这些不如先上个例子,先上手实践一下。

1          /// <summary>
2         /// 连接字符串
3         /// </summary>
4         private static readonly string _connectionString = "mongodb://sa:[email protected]:27017/Test_mongo";
5         private static readonly string _dbName = "Test_mongo";

在c#中使用Mongodb需要引入如下的dll
采用Nuget进行安装就可以了。

增删改查的代码如下:

 1        /// <summary>
 2         /// 新增
 3         /// </summary>
 4         /// <param name="customer"></param>
 5         private static void Insert(Customer customer)
 6         {
 7             //创建mogodb对象
 8             using (Mongo mongo = new Mongo(_connectionString))
 9             {
10                 //连接mongodb
11                 mongo.Connect();
12                 //获得要操作的数据库
13                 var db = mongo.GetDatabase(_dbName);
14                 //获取要操作的Collection
15                 var collection = db.GetCollection<Customer>();
16                 collection.Insert(customer);
17             }
18         }
19         /// <summary>
20         /// 批量添加
21         /// </summary>
22         /// <param name="lstCustomer"></param>
23         private static void InsertList(List<Customer> lstCustomer)
24         {
25             using (Mongo mongo = new Mongo(_connectionString))
26             {
27                 mongo.Connect();
28                 var db = mongo.GetDatabase(_dbName);
29                 var collection = db.GetCollection<Customer>();
30                 collection.Insert(lstCustomer);
31             }
32         }
33         /// <summary>
34         /// 更新
35         /// </summary>
36         /// <param name="customer"></param>
37         private static void Update(Customer customer)
38         {
39             using (Mongo mongo = new Mongo(_connectionString))
40             {
41                 mongo.Connect();
42                 var db = mongo.GetDatabase(_dbName);
43                 var collection = db.GetCollection<Customer>();
44                 //更新对象
45                 collection.Update(customer, (x => x.CustomerID == customer.CustomerID));
46             }
47         }
48         /// <summary>
49         /// 获取所有的customer
50         /// </summary>
51         /// <returns></returns>
52         private static IList<Customer> GetList()
53         {
54             using (Mongo mongo = new Mongo(_connectionString))
55             {
56                 mongo.Connect();
57                 var db = mongo.GetDatabase(_dbName);
58                 var collection = db.GetCollection<Customer>();
59                 ICursor<Customer> mogoCollection = collection.FindAll();
60
61                 return mogoCollection.Documents.ToList();
62             }
63         }
64         /// <summary>
65         /// 根据id获取单个对象
66         /// </summary>
67         /// <param name="customerId"></param>
68         /// <returns></returns>
69         private static Customer GetById(string customerId)
70         {
71             using (Mongo mongo = new Mongo(_connectionString))
72             {
73                 mongo.Connect();
74                 var db = mongo.GetDatabase(_dbName);
75                 var collection = db.GetCollection<Customer>();
76                 return collection.FindOne(x => x.CustomerID == customerId);
77             }
78         }
79     }
80     [Serializable]
81     class Customer
82     {
83         [MongoId]
84         public string CustomerID { set; get; }
85         public string CustomerName { set; get; }
86         public string ContactName { set; get; }
87         public string Address { set; get; }
88         public string PostalCode { set; get; }
89         public string Tel { set; get; }
90     }

测试

 1 static void Main(string[] args)
 2         {
 3             #region 批量插入
 4             //List<Customer> list = new List<Customer>();
 5             //for (int i = 0; i < 100; i++)
 6             //{
 7             //    Customer customer = new Customer()
 8             //    {
 9             //        CustomerID = Guid.NewGuid().ToString(),
10             //        Address = "北京" + i.ToString(),
11             //        CustomerName = "wolfy" + i.ToString(),
12             //        Tel = "123" + i.ToString(),
13             //        PostalCode = "221212" + i.ToString(),
14             //        ContactName = "wolfy" + i.ToString()
15             //    };
16             //    list.Add(customer);
17             //}
18             //InsertList(list);
19             #endregion
20             #region 更新
21             //更新需要先将该对象查询出,然后更新修改的值,不然其他的值为null
22             //Update(new Customer() { CustomerID = "08dca525-fb6d-4984-a55f-53723a6ce39c", ContactName = "wolfy22222" });
23             #endregion
24             #region 查询单个对象和集合
25             //Customer customer = GetById("8211501b-4341-4acb-b2fa-d6a714765443");
26             //Console.WriteLine(new JavaScriptSerializer().Serialize(customer));
27             List<Customer> customers = GetList().ToList();
28             Console.WriteLine(new JavaScriptSerializer().Serialize(customers));
29             #endregion
30             Console.Read();
31         }

总结

到这里就结束了,这里弄了一个简单例子,算是快速上手的例子。

时间: 2024-08-06 07:58:27

Mongodb c#增删改查的相关文章

Scala对MongoDB的增删改查操作

=========================================== 原文链接: Scala对MongoDB的增删改查操作 转载请注明出处! =========================================== 依赖环境:jdk1.8.Scala 2.12.idea mongodb Driver:3.1.1.注意,mongo for scala的驱动涉及多个jar(如下图),依赖于mongo-java-driver.jar 这里使用的sbt管理依赖,直接在bu

MongoDB(三)——增删改查

MongoDB作为非关系型数据库,还是传统数据库的增删改查有很大的区别的,这里只是将知识点进行了一下提纲挈领,实际用的时候,我们百度一下详细用法即可.先看大的几个方面: 一,对于里边的插入和删除不再过多赘述,相对来说知识点比较少.先来看一下更新,常用操作还是非常有用的,需要我们根据实际情况灵活运用,这里只是提出了知识点,需要百度出例子来学习使用: 2,查询也是一样,看一下知识点的汇总,其实用几个,还是有规律的,比较容易记录的: 3,看一下固定集合Capped Collection:顾名思义是有着

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

C# 对MongoDB 进行增删改查的简单操作 下面演示下C#操作MongoDB驱动的简单的增删改查代码 运用到的MongoDB支持的C#驱动,当前版本为1.6.0 下载地址:https://github.com/mongodb/mongo-csharp-driver/downloads 1,连接数据库 /// <summary> /// 数据库连接 /// </summary> private const string conn = "mongodb://127.0.0

Java连接MongoDB进行增删改查

1.导入必须的包: 详情看项目:http://pan.baidu.com/s/1cvDAOY 2.通过Myeclipse创建WEB项目 3. 3.bean:创建实体类 package com.bean; import java.io.Serializable; import java.util.Date; /** * @since 对应于mongodb中的数据库test中的表com * @author think * */ public class Company implements Seri

MongoDB的增删改查 转

MongoDB的增删改查 (黎明你好原创作品,转载请注明) MongoDB中数据的基本单元叫做文档,采用json的键-值的方式.多个键及其关联的值有序的存放在一起变是文档.类似于编程语言中的键值关系.MongoDB文档都是BSON文档,他是一个JSON的二进制形式. MongoDB的文档 MongoDB中文档被存储在集合中.集合是一组有关系索引的文档.集合类似于关系数据库中的表. MongoDB的集合 2.1 方法参考 查询游标方法 名称 说明 cursor.count() 返回游标中的文档的数

MongoDB之增删改查(一)

本文主要介绍MongoDB数据库增删改查操作. 增 mongoDB和其他关系型数据库一样,通过insert来增加数据到集合中去. db.collectionName.insert(内容) 显示数据库中所有集合: show collections 删 MongoDB中通过remove来删除集合中符合一定条件的文档. remove接受一个参数,作为寻找要删除文档的条件: 当然了,也可以直接删除一整个集合,通过drop方法: db.person.drop() 删除集合然后重建索引比删除集合中所有的文档

Mongodb之增删改查

一 Mongodb 首先下载好这个和上一篇文章下载的Mongodb 关于Mongodb的常识 1 它的默认端口 是27017 2 3 show dbs 查看所有存在磁盘上的数据库 4 show tables 查看当前数据库存在磁盘上的数据表 5 6 use 数据库 创建数据库或切换数据库 7 8 ######使用了不能存在的对象即创建该对象###### 9 10 数据库.表名 创建表 一些基本命令 二 Mongodb数据的增删改查 #insert db.user.insert({"id"

MongoDB的增删改查

1.启动 - 配置环境变量 MongoDB/3.4/bin 通过命令 mongod 来启动 MongoDB 默认端口 27017 redis:6379 Mysql:3306 可以指定数据库存放目录,但在登录时必须指定路径: mongod --dbpath="指定数据库存放路径" 2.应用连接MongoDB数据库 通过 mongo 指令 进行本地数据库连接 3.MongoDB数据: mysql - 数据库服务 - 数据库 - 数据表 - 字段 - 数据row mongodb - 数据库服

vue+express+mongodb 实现 增删改查

一.创建一个vue项目 用脚手架vue-cli搭建一个项目,数据请求用axios方式,写几个按钮用来调接口(vue这块不做多解释,不懂的可以先去官网学习vue-cli:https://cli.vuejs.org/zh/guide/cli-service.html   axios:http://www.axios-js.com/) 注意点:在用axios调用接口的时候会产生跨域,所以有配置下:在vue项目根目录下打开config文件夹下的index.js文件中proxyTable中加入配置内容 p