使用Mongo官方驱动操作Mongo数据库
首先到 https://github.com/mongodb/mongo-csharp-driver/downloads 下载Mongo官方驱动
下载完成后引用到项目中
public class ConnHelp
{
public static string ConnectionString = "mongodb://127.0.0.1:27017/qiao";
public static MongoDatabase GetDatabaseFromUrl(MongoUrl url)
{
var client = new MongoClient(url);
var server = client.GetServer();
return server.GetDatabase(url.DatabaseName);
}
public static MongoDatabase GetDatabaseFromConnectionString(string connectionstring)
{
return GetDatabaseFromUrl(new MongoUrl(connectionstring));
}
public static MongoCollection<T> GetCollection<T>(string collectionName)
{
return GetDatabaseFromConnectionString(ConnectionString).GetCollection<T>(collectionName);
}
}
using MongoDB.Bson;
using MongoDB.Driver;
using MongoDB.Driver.Builders;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace MognoLearn
{
class Program
{
static void Main(string[] args)
{
MongoCollection<aa> tt = ConnHelp.GetCollection<aa>("aa"); //List<aa> = tt.FindAll().ToList();
var query = Query.And(Query<aa>.EQ(x => x.name,"张三"));
//{ "name" : "张三" }
List<aa> ll = tt.Find(query).ToList();//根据 query 的条件返回数据
List<aa> list = tt.FindAll().ToList();//查询 全部的数据
List<string> str = new List<string>();
str.Add("张三");
str.Add("李四");
query = Query.And(
Query<aa>.In(x=>x.name,str)
);
//{ "name" : { "$in" : ["张三", "李四"] } }
list = tt.Find(query).ToList(); //对数据库中的内嵌文档books进行聚合
//如果需要过滤掉一些数据在这个地方写过滤条件
//var match = new BsonDocument
//{
// {
// "$match",
// query.ToBsonDocument()
// }
//}; var unwind = new BsonDocument
{
{
"$unwind",
"$books"
}
};
//unwind 后面也可以写一些过滤条件,用来过滤掉一些拆分后可能不需要的数据
var group = new BsonDocument
{
{
"$group",
new BsonDocument
{
{
"_id", new BsonDocument
{
{ "books","$books.name" },
{ "money","$money" }
}
},
{
"Count", new BsonDocument
{
{ "$sum" , }
}
}
}
}
};
AggregateResult use = tt.Aggregate(unwind, group);
var sttr = use.Response.ToList()[].Value;
//{[{ "_id" : { "books" : "生物" }, "Count" : 1 }, { "_id" : { "books" : "地理" }, "Count" : 1 }, { "_id" : { "books" : "化学" }, "Count" : 4 },
{ "_id" : { "books" : "英语" }, "Count" : 2 }, { "_id" : { "books" : "语文" }, "Count" : 7 }, { "_id" : { "books" : "数学" }, "Count" : 2 }, { "_id" : { "books" : "mongo权威指南" }, "Count" : 1 }]} Console.ReadLine();
}
}
}
namespace MognoLearn
{
public class aa
{
//[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
public string id { get; set; }
public string name { get; set; }
public List<book> books { get; set; }
//[BsonDateTimeOptions(Kind = DateTimeKind.Local)]
//public DateTime AddTime { get; set; }
} public class book
{
public string name { get; set; }
public double money { get; set; }
public int page { get; set; }
}
}
使用Mongo官方驱动操作Mongo数据库的更多相关文章
- MongoDB基础入门003--使用官方驱动操作mongo,C#
本篇先简单介绍一下,使用官方驱动来操作MongoDB.至于MongoDB原生的增删改查语句,且等以后再慢慢学习. 一.操作MongoDB的驱动主要有两个 1.官方驱动:https://github.c ...
- [转载]在C#中使用官方驱动操作MongoDB
在C#中使用官方驱动操作MongoDB 8.1)下载安装 想要在C#中使用MongoDB,首先得要有个MongoDB支持的C#版的驱动.C#版的驱动有很多种,如官方提供的,samus. 实现思路大都类 ...
- C#中使用官方驱动操作MongoDB
想要在C#中使用MongoDB,首先得要有个MongoDB支持的C#版的驱动.C#版的驱动有很多种,如官方提供的,samus. 实现思路大都类似.这里我们先用官方提供的mongo-csharp-dri ...
- 在C#中使用官方驱动操作MongoDB
MongoDB的官方驱动下载地址:https://github.com/mongodb/mongo-csharp-driver/releases 目前最新的版本是2.10,支持.NET 4.5以上.由 ...
- mongo官方企业版安装及数据库授权使用
通过安装.deb包的方式,系统是Ubuntu 16.04 1. Import the public key used by the package management system.(导入包管理系统 ...
- 使用MongoDB C#官方驱动操作MongoDB
想要在C#中使用MongoDB,首先得要有个MongoDB支持的C#版的驱动.C#版的驱动有很多种,如官方提供的,samus. 实现思路大都类似.这里我们先用官方提供的mongo-csharp-dri ...
- C#/.NET 使用官方驱动操作MongoDB(一):插入、查询
概述 想要在C#中使用MongoDB,首先得要有个MongoDB支持的C#版的驱动. C#版的驱动有很多,这里我们先用官方提供的 MongoDB.Driver(使用 Nuget 安装),当前版本为2. ...
- 在C#中使用官方驱动操作MongoDB ---转载
http://blog.csdn.net/dannywj1371/article/details/7440916
- MongoDB学习笔记~关于官方驱动集成IQueryable之后的一些事
回到目录 关于官方驱动集成IQueryable之后的一些事,有好事也有坏事,好事就是它会将你的linq语句非常友好的翻译成MongoDB语句,而坏事就是有一些linq语句不会被翻译,不会被翻译的代价就 ...
随机推荐
- zookeeper定时清理log
在zookeeper的目录下新建一个脚本,内容如下(zookeeper bin下面也有zkCleanup.sh脚本,原理一样,都是调用java类) shell_dir=$(cd ")&quo ...
- ajax、post、get实例
html代码: <!DOCTYPE HTML><html lang="en-US"><head> <meta charset=" ...
- POJ 1845 (约数和+二分等比数列求和)
题目链接: http://poj.org/problem?id=1845 题目大意:A^B的所有约数和,mod 9901. 解题思路: ①整数唯一分解定理: 一个整数A一定能被分成:A=(P1^K1) ...
- 移动端HTML5开发心得(转)
1. iOS里fixed中有input或者textarea,用户在里面输入文字,触发键盘,fixed容器会居中显示,而不是继续悬浮 解决办法: http://dwz.cn/CrwNz 2. ...
- topcoder SRM 617 DIV2 SlimeXSlimonadeTycoon
此题需要注意的两个地方是 (1)在某天生产出来的Slimonades,必须在stale_limit天内必须卖完,否则超过stale_limit内抛弃(东西都有保质期) (2)每天生产出来的Slimon ...
- ACM 独木舟上的旅行
独木舟上的旅行 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 进行一次独木舟的旅行活动,独木舟可以在港口租到,并且之间没有区别.一条独木舟最多只能乘坐两个人,且乘客 ...
- QQ 微信 新浪 无法 分享 收集
1.网络请求报错.升级Xcode 7.0发现网络访问失败.输出错误信息 The resource could not be loaded because the App Transport Secur ...
- 用GruntJS合并、压缩JS文件
为什么要合并.压缩你的JS文件? 一个项目开发完成我们总能发现有一堆js文件非常混乱. 一般在一个HTML文档加载的时候,浏览器会根据HTML代码从上到下读取所需要加 ...
- HDU 2955(0-1背包问题)
题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=87125#problem/M 题目: Description The aspir ...
- Radar Installation
Radar Installation 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=86640#problem/C 题目: De ...