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可参考官网的东西。
说这些不如先上个例子,先上手实践一下。
/// <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#增删改查的更多相关文章
- Java连接MongoDB进行增删改查
1.导入必须的包: 详情看项目:http://pan.baidu.com/s/1cvDAOY 2.通过Myeclipse创建WEB项目 3. 3.bean:创建实体类 package com.bean ...
- MongoDB的增删改查 转
MongoDB的增删改查 (黎明你好原创作品,转载请注明) MongoDB中数据的基本单元叫做文档,采用json的键-值的方式.多个键及其关联的值有序的存放在一起变是文档.类似于编程语言中的键值关系. ...
- Java实现mongodb原生增删改查语句
Java实现mongodb原生增删改查语句 2018-03-16 自动化测试时,需校验数据库数据,为了快速自动化,在代码中用原生增删改查语句操作mongodb 结构 代码 0 pom.xml < ...
- Scala对MongoDB的增删改查操作
=========================================== 原文链接: Scala对MongoDB的增删改查操作 转载请注明出处! ==================== ...
- C# 对MongoDB 进行增删改查的简单操作
C# 对MongoDB 进行增删改查的简单操作 下面演示下C#操作MongoDB驱动的简单的增删改查代码 运用到的MongoDB支持的C#驱动,当前版本为1.6.0 1,连接数据库 /// & ...
- python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查
python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.h ...
- python 全栈开发,Day124(MongoDB初识,增删改查操作,数据类型,$关键字以及$修改器,"$"的奇妙用法,Array Object 的特殊操作,选取跳过排序,客户端操作)
一.MongoDB初识 什么是MongoDB MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介 ...
- 2,MongoDB之增删改查及pymongo的使用
本章我们来学习一下关于 MongoDB的增删改查 一.MongoDB操作 之 原生ORM,根本不存在SQL语句 创建数据库:这里和一般的关系型数据库一样,都要先建立一个自己的数据库空间 是的,Mong ...
- SpringBoot操作MongoDB实现增删改查
本篇博客主讲如何使用SpringBoot操作MongoDB. SpringBoot操作MongoDB实现增删改查 (1)pom.xml引入依赖 <dependency> <group ...
- MongoDB之增删改查(一)
本文主要介绍MongoDB数据库增删改查操作. 增 mongoDB和其它关系型数据库一样,通过insert来添加数据到集合中去. db.collectionName.insert(内容) 显示数据库中 ...
随机推荐
- [CareerCup] 12.2 Find the Reason of Crash 找到程序崩溃的原因
12.2 You are given the source to an application which crashes when it is run. After running it ten t ...
- 信息安全系统设计基础实验一:Linux开发环境的配置和使用(20135234,20135229)
http://www.cnblogs.com/mqy123/p/4968386.html
- 20145314郑凯杰《信息安全系统设计基础》GDB调试32位汇编堆栈分析
20145314郑凯杰<信息安全系统设计基础>GDB调试32位汇编堆栈分析 本篇博客将对第五周博客中的GDB调试32位汇编堆栈进行分析 首先放上以前环境配置的图: 图1: 测试代码: #i ...
- i春秋——春秋争霸write up
i春秋--春秋争霸write up 第一关 题目给出一张图 提示中,这种排列源于古老的奇书,暗含了两个数字,可以得出第一关的答案是两个数字 百度识图来一发, 得到图中排列是来自于洛书,点开洛书的百度百 ...
- [转]MySQL Explain详解
在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有 ...
- asp.net Core开启全新的时代,用视频来告诉你,学习就是这么SO easy。
https://channel9.msdn.com/Blogs/NET-Core/What-is-NET-Core 系统大家多发布一些视频的资料,学习起来更方便!我看到很多人发布的博客里面有的时候对于 ...
- 常见面试第二题之什么是Context
今天的面试题,也就是我们常见面试题系列的第二题,我们来讲一讲android中的context.我相信大家android开发者一定对于这个context非常熟悉,肯定都有使用过,肯定没有没使用过的.但是 ...
- WEB前端开发规范
WEB前端开发规范 规范目的 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档.本文档如有不对或者不合适的地方请及时提出, 经讨论决定后方可更改. 基本 ...
- Apache CXFjar包目录(转)
文件目录结构及相关文件的详细说明:|-bin|-docs|-etc|-lib|-licenses|-modules|-samples bin(目录) bin 目录中是 CXF 框架中所提供的代码生成. ...
- php_curl模拟登录有验证码实例
<?php/** * @author 追逐__something * @version $id */define('SCRIPT_ROOT',dirname(__FILE__).'/');$ac ...