MongoDb C# 驱动操作示例
c#操作mongo数据库
驱动采用http://www.oschina.net/p/mongo-csharp-driver
public class Person
{
public ObjectId _id; public string Name { get; set; } public int Age { get; set; } public override string ToString()
{
return string.Format("id:{0} Name:{1} Age:{2}", _id, Name, Age);
}
}
using MongoDB.Bson;
using MongoDB.Driver;
using MongoDB.Driver.Builders;
using MongoDB.Driver.Linq;
//连接数据库字符串
string connectionStr = "mongodb://localhost";
MongoClient client = new MongoClient(connectionStr);
MongoServer server = client.GetServer();
//选择数据库
MongoDatabase db = server.GetDatabase("person");
//选择文档集合
MongoCollection<BsonDocument> collection = db.GetCollection("Person");
//插入数据*******************************************************************
//方法1:
BsonDocument person = new BsonDocument();
person.Add("Name", "test");
person.Add("Age", 10);
collection.Insert(person); //方法2:
for (int i = 0; i < 100; i++)
{
var perSon = new Person()
{
Name = "test" + i,
Age = i
};
collection.Insert(perSon);
}
//查询数据*******************************************************************
//小于20
QueryDocument queryD1 = new QueryDocument("Age", new QueryDocument("$lt", 20)); //
foreach (var perSon in collection.Find(queryD1))
{
Console.WriteLine(perSon);
}
//等于 xq20
QueryDocument queryD2 = new QueryDocument("Name", "test20"); //
foreach (var perSon in collection.Find(queryD2))
{
Console.WriteLine(perSon);
}
//等于 xq20
var query1 = Query.And(Query.EQ("Name","test20")); //
foreach (var perSon in collection.Find(query1))
{
Console.WriteLine(perSon);
}
linq方式:
//Linq查询
var query2 = collection.AsQueryable<Person>().Where(n => n.Name.Contains("test")).Take(20).ToList();
//.Where(n => n.Name == "xixihaha").ToList();
foreach (var per in query2)
{
Console.WriteLine(per);
}
//保存数据*******************************************************************
//Save1方法
var per = collection.AsQueryable<Person>().First(n => n.Name == "xixihaha");
//修改保存数据
per.Age = 50;
collection.Save(per);
per = collection.AsQueryable<Person>().First(n => n.Name == "xixihaha");
Console.WriteLine(per);
//Save2方法
var query = Query.And(Query.EQ("Name", "test5"));
var document = collection.FindOne(query);
if (document != null)
{
document["Age"] = 34;
collection.Save(document);
}
var per = collection.AsQueryable<Person>().First(n => n.Name == "test5");
Console.WriteLine(per);
//Update方法
var query = Query.And(Query.EQ("Name", "test5"));
var update = Update.Set("Age", 45);
collection.Update(query, update);
var per = collection.AsQueryable<Person>().First(n => n.Name == "test5");
Console.WriteLine(per);
////删除数据*******************************************************************
//删除指定文档
var query = Query.And(Query.EQ("Name", "test5"));
//删除所有文档
collection.RemoveAll();
源码地址:链接:http://pan.baidu.com/s/1b2OGGY 密码:cjp4
引用文档:http://www.cnblogs.com/wilber2013/p/4175825.html
MongoDb C# 驱动操作示例的更多相关文章
- MongoDB基础入门003--使用官方驱动操作mongo,C#
本篇先简单介绍一下,使用官方驱动来操作MongoDB.至于MongoDB原生的增删改查语句,且等以后再慢慢学习. 一.操作MongoDB的驱动主要有两个 1.官方驱动:https://github.c ...
- MongoDB学习比较-07 C#驱动操作MongoDB
下载驱动 驱动的下载有两种方式:一种是在C#项目中通过NuGet进行安装,另一种是通过下面的链接:https://github.com/mongodb/mongo-csharp-driver/rele ...
- 在C#中使用官方驱动操作MongoDB
MongoDB的官方驱动下载地址:https://github.com/mongodb/mongo-csharp-driver/releases 目前最新的版本是2.10,支持.NET 4.5以上.由 ...
- [转]MongoDB学习 C#驱动操作MongoDB
下载驱动 驱动的下载有两种方式:一种是在C#项目中通过NuGet进行安装,另一种是通过下面的链接:https://github.com/mongodb/mongo-csharp-driver/rele ...
- C#中使用官方驱动操作MongoDB
想要在C#中使用MongoDB,首先得要有个MongoDB支持的C#版的驱动.C#版的驱动有很多种,如官方提供的,samus. 实现思路大都类似.这里我们先用官方提供的mongo-csharp-dri ...
- [转载]在C#中使用官方驱动操作MongoDB
在C#中使用官方驱动操作MongoDB 8.1)下载安装 想要在C#中使用MongoDB,首先得要有个MongoDB支持的C#版的驱动.C#版的驱动有很多种,如官方提供的,samus. 实现思路大都类 ...
- MongoDB学习-->命令行增删改查&JAVA驱动操作Mongodb
MongoDB 是一个基于分布式文件存储的数据库. 由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关 ...
- 快速掌握mongoDB(五)——通过mongofiles和C#驱动操作GridFS
1 GridFS简介 当前Bson能存储的最大尺寸是16M,我们想把大于16M的文件存入mongoDB中怎么办呢?mongoDB提供的GridFS就是专门做这个的.使用GridFS存储大文件时,文件被 ...
- 【翻译】MongoDB指南/CRUD操作(二)
[原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(二) 主要内容: 更新文档,删除文档,批量写操作,SQL与MongoDB映射图,读隔离(读关 ...
随机推荐
- kubernetes监控-prometheus(十六)
监控方案 cAdvisor+Heapster+InfluxDB+Grafana Y 简单 容器监控 cAdvisor/exporter+Prometheus+Grafana Y 扩展性好 容器,应用, ...
- GitHub和码云的简单使用
年轻,又经历了初高大学的英语的纠缠,导致连最简单的语句都看不懂,我在慢慢寻找语言的快乐 GitHub 的简单使用 : https://www.cnblogs.com/zhcncn/p/3731707. ...
- 使用xcode 8 调试ios10
这几天更新了ios10,发现真机不能调试,弹出几个错,表示没有证书.用ios9的真机能调试, 真他么坑,总结一下解决方法. 在BuildSetting 的Signing中Code Signing Id ...
- 【思维题 费用流 技巧】bzoj5403: marshland
主要还是网络流拆点建图一类技巧吧 Description JudgeOnline/upload/201806/1(4).pdf 题目分析 第一眼看到这题时候只会把每个点拆成4个方向:再强制定向连边防止 ...
- MySQL8.0.12安装及配置
一.下载 下载页面http://dev.mysql.com/downloads/mysql/ 选择系统平台后,点击download(根据系统选择64或32位) 二.配置 1.下载成功后,解压安装包到要 ...
- springboot下https证书配置
没有证书的小伙伴首先申请一个阿里云免费证书,按照我的步骤来操作 1.购买页面是这样的 按照顺序选择 神奇的一幕出现了 然后就去购买成功,我们会看到证书没有签发,我们需要去申请 填写需要绑定的域名 一般 ...
- PHP计算今天、昨天、本周、本月、上月开始时间和结束时间
PHP计算今天.昨天.本周.本月.上月开始时间和结束时间 $today = date('Y-m-d H:i:s',mktime(0,0,0,date('m'),date('d'),date('Y')) ...
- Voyager的路由
修改默认的后台登录路由 打开web.php,把prefix值改为你想设置的值,如back: Route::group(['prefix' => 'back'], function () { Vo ...
- 根据参数优化nginx的服务性能
一.优化nginx服务的worker进程数 在高并发.高访问量的Web服务场景,需要事先启动好更多的nginx进程,以保证快速响应并处理大量并发用户的请求. 1).优化nginx进程对应的配置 优化n ...
- 【windows】共享文件夹设置
控制面板\网络和 Internet\网络和共享中心\高级共享设置 在当前的域\公用\家庭网络 下文件和打印机共享开关打开 现在可以在 计算机-网络 里面看到共享的计算机啦 选中自己想要分享的文件,右键 ...