Mongodb c#增删改查

写在前面

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

Mongodb

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

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

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

MongoDB 标准连接字符串

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

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

username:password@ 可选项,连接到数据库后会尝试验证登陆。

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

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

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

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

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

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

1          /// <summary>
2         /// 连接字符串
3         /// </summary>
4         private static readonly string _connectionString = "mongodb://sa:sa@192.168.1.105: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         }

总结    

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

 

博客地址: http://www.cnblogs.com/wolf-sun/
博客版权: 本文以学习、研究和分享为主,欢迎转载,但必须在文章页面明显位置给出原文连接。
如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步!
再次感谢您耐心的读完本篇文章。http://www.cnblogs.com/wolf-sun/p/4455469.html
时间: 2024-10-28 21:51:28

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

Android编程连接MongoDB及增删改查等基本操作示例

本文实例讲述了Android编程连接MongoDB及增删改查等基本操作.分享给大家供大家参考,具体如下: MongoDB简介 Mongodb,分布式文档存储数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案.MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种.它在许多场景下可用于替代传统的关系型数据库或键/值存储方式.Mongo使用C++开发. Mongo安装参考 1)下载安装包文件,解压到某一文件夹下. 官方下载地址:htt

Java操作MongoDB进行增删改查实例教程

现在我们就用Java来操作MongoDB的数据. 一.准备工作 1. 首先,下载mongoDB对Java支持的驱动包 驱动包下载地址:https://github.com/mongodb/mongo-java-driver/downloads mongoDB对Java的相关支持.技术:http://www.mongodb.org/display/DOCS/Java+Language+Center 驱动源码下载:https://download.github.com/mongodb-mongo-j

MongoDB.NET 2.2.4驱动版本对Mongodb3.3数据库中GridFS增删改查_MongoDB

本文实例为大家分享了针对Mongodb3.3数据库中GridFS增删改查,供大家参考,具体内容如下 Program.cs代码如下: internal class Program { private static void Main(string[] args) { GridFSHelper helper = new GridFSHelper("mongodb://localhost", "GridFSDemo", "Pictures"); #re

nodejs连接mongodb数据库实现增删改查_node.js

准备 1.通过npm命令安装mongodb 2.安装mongodb数据库,这里不详细介绍了,安装网址:http://www.jb51.net/article/82522.htm CRUD操作 在此之前应对MongoDB数据库有所了解,知道它的一些增删查改命令. 1.增加 var MongoClient = require("mongodb").MongoClient; var DB_URL = "mongodb://localhost:27017/chm"; fun

PHP简单操作MongoDB的方法(安装及增删改查)_php技巧

本文实例讲述了PHP简单操作MongoDB的方法.分享给大家供大家参考,具体如下: php操作MongoDB的话首先从网上下载MongoDB的扩展包,https://github.com/mongodb/mongo-php-driver/downloads,选择对应的扩展包. 这是我下的,然后解压,VC6适合apache,VC9适合IIS,ts(thread safe)指PHP以模块形式运行的. 然后把其中的php_mongo.dll放在PHP中的ext文件夹中,然后在PHP.INI里面加入ex

Mongodb + PHP 进行增删改查(CRUD)操作教程

用户使用MongoDB开发应用程序使用的是逻辑结构: ● MongoDB的文档,相当于关系数据库中的一行记录 ● 多个文档组成一个集合,相当于关系数据库中的表 ● 多个集合逻辑上组织在一起就是数据库 在安装配置好MongoDB后,我们开始用PHP来实现对数据库的基本操作.所谓基本操作,自然就是我们常说的增删改查(又称CRUD)了. 一.PHP扩展配置 PHP默认是不带mongodb扩展的,在http://www.php.net/manual/en/mongo.installation.php可以

mongodb+php实现简单的增删改查_MongoDB

windows上安装mongodb的php扩展 下载地址https://s3.amazonaws.com/drivers.mongodb.org/php/index.html 找到对应的php版本的dll文件,下载php_mongo.dll,放到php安装目录下的ext目录中,修改php.ini,添加一项extension=php_mongo.dll,没有找到支持php7的dll 获取MongoClient对象,new出来 获取数据库对象db,通过MongoClient对象的数据库属性,$Mon

详解Nodejs基于mongoose模块的增删改查的操作_node.js

MongoDB MongoDB是基于Javascript语言的数据库,存储格式是JSON,而Node也是基于JavaScript的环境(库),所以node和mongoDB的搭配能减少因为数据转换带来的时间空间开销. Mongoose 是MongoDB的一个对象模型工具,它将数据库中的数据转换为JavaScript对象以供你在应用中使用,封装了MongoDB对文档的的一些增删改查等常用方法,让NodeJS操作Mongodb数据库变得更加灵活简单. 安装模块mongoose npm install

Mongo DB增删改查命令_MongoDB

1 列出并选用 1.1 列出所有数据库 > show dbs local 0.000GB myblog 0.000GB 1.2 使用某个数据库 > use myblog switched to db myblog 1.3 列出所有集合 > show collections articles replicationColletion sessions users wangduanduan 2 插入数据 insert(value) // 在已经存在的集合中插入数据 > db.users