写在前面

最近项目需要,就研究了下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可参考官网的东西。

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

          /// <summary>
/// 连接字符串
/// </summary>
private static readonly string _connectionString = "mongodb://sa:sa@192.168.1.105:27017/Test_mongo";
private static readonly string _dbName = "Test_mongo";

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

增删改查的代码如下:

        /// <summary>
/// 新增
/// </summary>
/// <param name="customer"></param>
private static void Insert(Customer customer)
{
//创建mogodb对象
using (Mongo mongo = new Mongo(_connectionString))
{
//连接mongodb
mongo.Connect();
//获得要操作的数据库
var db = mongo.GetDatabase(_dbName);
//获取要操作的Collection
var collection = db.GetCollection<Customer>();
collection.Insert(customer);
}
}
/// <summary>
/// 批量添加
/// </summary>
/// <param name="lstCustomer"></param>
private static void InsertList(List<Customer> lstCustomer)
{
using (Mongo mongo = new Mongo(_connectionString))
{
mongo.Connect();
var db = mongo.GetDatabase(_dbName);
var collection = db.GetCollection<Customer>();
collection.Insert(lstCustomer);
}
}
/// <summary>
/// 更新
/// </summary>
/// <param name="customer"></param>
private static void Update(Customer customer)
{
using (Mongo mongo = new Mongo(_connectionString))
{
mongo.Connect();
var db = mongo.GetDatabase(_dbName);
var collection = db.GetCollection<Customer>();
//更新对象
collection.Update(customer, (x => x.CustomerID == customer.CustomerID));
}
}
/// <summary>
/// 获取所有的customer
/// </summary>
/// <returns></returns>
private static IList<Customer> GetList()
{
using (Mongo mongo = new Mongo(_connectionString))
{
mongo.Connect();
var db = mongo.GetDatabase(_dbName);
var collection = db.GetCollection<Customer>();
ICursor<Customer> mogoCollection = collection.FindAll(); return mogoCollection.Documents.ToList();
}
}
/// <summary>
/// 根据id获取单个对象
/// </summary>
/// <param name="customerId"></param>
/// <returns></returns>
private static Customer GetById(string customerId)
{
using (Mongo mongo = new Mongo(_connectionString))
{
mongo.Connect();
var db = mongo.GetDatabase(_dbName);
var collection = db.GetCollection<Customer>();
return collection.FindOne(x => x.CustomerID == customerId);
}
}
}
[Serializable]
class Customer
{
[MongoId]
public string CustomerID { set; get; }
public string CustomerName { set; get; }
public string ContactName { set; get; }
public string Address { set; get; }
public string PostalCode { set; get; }
public string Tel { set; get; }
}

测试

 static void Main(string[] args)
{
#region 批量插入
//List<Customer> list = new List<Customer>();
//for (int i = 0; i < 100; i++)
//{
// Customer customer = new Customer()
// {
// CustomerID = Guid.NewGuid().ToString(),
// Address = "北京" + i.ToString(),
// CustomerName = "wolfy" + i.ToString(),
// Tel = "123" + i.ToString(),
// PostalCode = "221212" + i.ToString(),
// ContactName = "wolfy" + i.ToString()
// };
// list.Add(customer);
//}
//InsertList(list);
#endregion
#region 更新
//更新需要先将该对象查询出,然后更新修改的值,不然其他的值为null
//Update(new Customer() { CustomerID = "08dca525-fb6d-4984-a55f-53723a6ce39c", ContactName = "wolfy22222" });
#endregion
#region 查询单个对象和集合
//Customer customer = GetById("8211501b-4341-4acb-b2fa-d6a714765443");
//Console.WriteLine(new JavaScriptSerializer().Serialize(customer));
List<Customer> customers = GetList().ToList();
Console.WriteLine(new JavaScriptSerializer().Serialize(customers));
#endregion
Console.Read();
}

总结

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

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

  1. Java连接MongoDB进行增删改查

    1.导入必须的包: 详情看项目:http://pan.baidu.com/s/1cvDAOY 2.通过Myeclipse创建WEB项目 3. 3.bean:创建实体类 package com.bean ...

  2. MongoDB的增删改查 转

    MongoDB的增删改查 (黎明你好原创作品,转载请注明) MongoDB中数据的基本单元叫做文档,采用json的键-值的方式.多个键及其关联的值有序的存放在一起变是文档.类似于编程语言中的键值关系. ...

  3. Java实现mongodb原生增删改查语句

    Java实现mongodb原生增删改查语句 2018-03-16 自动化测试时,需校验数据库数据,为了快速自动化,在代码中用原生增删改查语句操作mongodb 结构 代码 0 pom.xml < ...

  4. Scala对MongoDB的增删改查操作

    =========================================== 原文链接: Scala对MongoDB的增删改查操作 转载请注明出处! ==================== ...

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

    C# 对MongoDB 进行增删改查的简单操作   下面演示下C#操作MongoDB驱动的简单的增删改查代码 运用到的MongoDB支持的C#驱动,当前版本为1.6.0 1,连接数据库   /// & ...

  6. python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查

    python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.h ...

  7. python 全栈开发,Day124(MongoDB初识,增删改查操作,数据类型,$关键字以及$修改器,"$"的奇妙用法,Array Object 的特殊操作,选取跳过排序,客户端操作)

    一.MongoDB初识 什么是MongoDB MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介 ...

  8. 2,MongoDB之增删改查及pymongo的使用

    本章我们来学习一下关于 MongoDB的增删改查 一.MongoDB操作 之 原生ORM,根本不存在SQL语句 创建数据库:这里和一般的关系型数据库一样,都要先建立一个自己的数据库空间 是的,Mong ...

  9. SpringBoot操作MongoDB实现增删改查

    本篇博客主讲如何使用SpringBoot操作MongoDB. SpringBoot操作MongoDB实现增删改查 (1)pom.xml引入依赖 <dependency> <group ...

  10. MongoDB之增删改查(一)

    本文主要介绍MongoDB数据库增删改查操作. 增 mongoDB和其它关系型数据库一样,通过insert来添加数据到集合中去. db.collectionName.insert(内容) 显示数据库中 ...

随机推荐

  1. Nutch搜索引擎(第3期)_ Nutch简单应用

    1.Nutch命令详解 Nutch采用了一种命令的方式进行工作,其命令可以是对局域网方式的单一命令也可以是对整个Web进行爬取的分步命令. 要看Nutch的命令说明,可执行"Nutch&qu ...

  2. Jenkins进阶系列之——15Maven获取Jenkins的Subversion的版本号

    各位小伙伴们在工作中总是会碰到各种各样的奇葩需求,今天给大家说说Maven怎么在Jenkins中获取Subversion的版本号. Jenkins自己的环境变量中包含了很多有用的的参数,详情查看:ht ...

  3. ViewController与outlet绑定

    ViewController的作用 ViewController与XIB一一对应,用于分离独立出可重用组件单元,如单个组件.复合组件.界面片段.整个界面等. 通常继承 UIViewController ...

  4. Bootstrap系列 -- 18. 表单控件大小

    前面看到的表单控件都正常的大小.可以通过设置控件的height,line-height,padding和font-size等属性来实现控件的高度设置.不过Bootstrap框架还提供了两个不同的类名, ...

  5. Shadowsock搭建

    搭建Shadowsocks服务端: 搭建Shadowsocks之前首先必须购买一个VPS.一般VPS提供商会给一个测试地址,购买之前最好先ping一下速度.也可以通过以下网址测试下vps网络速度: h ...

  6. js与jquery的区别

    var html = $('<a target="_blank" href="' + adCompContent.clickURL + '">< ...

  7. JS截取字符串常用方法

    reference:http://www.jb51.net/article/42482.htm 使用 substring()或者slice() 函数:split() 功能:使用一个指定的分隔符把一个字 ...

  8. Moqui学习Day3

    添加一个新建表单 添加一个按钮来弹出新建表单,并创建一个转换来处理输入数据操作. 在FindTutorial.xml文件中添加一个转换. <!--新增 列表 --> <transit ...

  9. html 中添加背景音乐

    Embed (一).基本语法: embed src=url 说明:embed可以用来插入各种多媒体,格式可以是 Midi.Wav.AIFF.AU.MP3等等, Netscape及新版的IE 都支持.u ...

  10. iOS边练边学--cocoaPods管理第三方框架--命令行方式实现

    更换源 Gem是一个管理Ruby库和程序的标准包,它通过Ruby Gem(如 http://rubygems.org/)源来查找.安装.升级和写在软件包 gem sources --remove ht ...