使用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语句不会被翻译,不会被翻译的代价就 ...
随机推荐
- C# 词法分析器(六)构造词法分析器
系列导航 (一)词法分析介绍 (二)输入缓冲和代码定位 (三)正则表达式 (四)构造 NFA (五)转换 DFA (六)构造词法分析器 (七)总结 现在最核心的 DFA 已经成功构造出来了,最后一步就 ...
- Date 对象转换——toString、toTimeString、toDateString、toUTCString、toLocaleString()、toLocaleTimeString()、toLocaleDateString()
JavaScript toString() 方法 JavaScript Date 对象参考手册 定义和用法:toString() 方法可把 Date 对象转换为字符串,并返回结果. 语法:dateOb ...
- Codeforces 580D Kefa and Dishes(状压DP)
题目大概说要吃掉n个食物里m个,吃掉各个食物都会得到一定的满意度,有些食物如果在某些食物之后吃还会增加满意度,问怎么吃满意度最高. dp[S][i]表示已经吃掉的食物集合是S且刚吃的是第i个食物的最大 ...
- 每天一个linux命令---tar
解包/打包语法:tar [主选项+辅选项] 文件或者目录 使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用. 主选项: c 创建新的档案文件.如果用户想备份一个 ...
- 【原】iOS学习之KVC原理
1. KVC的实现原理 遍历字典里面所有的key,以name为例 去模型中查找有没有setName:方法,有就直接调用赋值 假如没有找到setName:方法,就会继续查找有没有_name属性,有就_n ...
- jquery layer弹出层插件
http://www.51xuediannao.com/js/jquery/jquery_layer/layer.html
- 使用CSS/JS代码修改博客模板plus
之前对CSS/JavaScript了解还不深,只是把模板的CSS胡乱修改了几个属性.最近正好也在做一个网站的前端,学习了不少东西,再来改一改~ 上次最后之所以铩羽而归,是因为从CSS里找不到那些#和. ...
- BZOJ2285 : [Sdoi2011]保密
首先通过分数规划,二分答案$mid$,将每条边边权重置为$t-mid\times s$,用DP求出终点到该点的最短路,若非正则可以更小. 如此可以计算出每个出入口的最小危险值,然后把奇点放在$S$,偶 ...
- 洛谷 P1372 又是毕业季I Label:None
题目背景 “叮铃铃铃”,随着高考最后一科结考铃声的敲响,三年青春时光顿时凝固于此刻.毕业的欣喜怎敌那离别的不舍,憧憬着未来仍毋忘逝去的歌.1000多个日夜的欢笑和泪水,全凝聚在毕业晚会上,相信,这一定 ...
- 【HDU】4089 Activation
http://acm.hdu.edu.cn/showproblem.php?pid=4089 题意: 有n个人排队等着在官网上激活游戏.主角排在第m个. 对于队列中的第一个人.有以下情况:1.激活失败 ...