MongoDB学习笔记~关于官方驱动集成IQueryable之后的一些事
关于官方驱动集成IQueryable之后的一些事,有好事也有坏事,好事就是它会将你的linq语句非常友好的翻译成MongoDB语句,而坏事就是有一些linq语句不会被翻译,不会被翻译的代价就是将整个结果集装到内存,然后进行linq to object的查询,效率自然是非常低的,呵呵。
好事
最新官方驱动中,添加了对IQueryable扩展方法的支持
public static IMongoQueryable<TDocument> AsQueryable<TDocument>(this IMongoCollection<TDocument> collection);
1 它对Where完成支持
_webManageUsersRepository.GetModel().Where(i => i.LoginName == "zzl");
2 它对group完全支持
var g = _webManageUsersRepository.GetModel()
.GroupBy(i => i.DepartmentID, (i, v) => new
{
dept = i,
userCount = v.Count()
});
通过断点我们可以看到它所生成的mongodb语句,然后可以把语句放在命令行中去执行看看具体效果
db.WebManageUsers.aggregate([{ "$group" : { "_id" : "$DepartmentID", "userCount" : { "$sum" : } } }])
上面写法是我比较喜欢的lambda表达式的方法,语法简介,漂亮,而我不太喜欢linq写法,但是,如果是多字段的分组,你就必须使用linq标准写法了,因为到目前为止,mongo官方驱动还不支持多字段分组的lambda写法,如下面的代码,分组结果就是错误的
var bb = _webManageUsersRepository.GetModel()
.GroupBy(
i => new
{
i.DepartmentID,
i.Status
},
(i, v) => new
{
dept = i.DepartmentID,
status = i.Status,
userCount = v.Count()
});
它不能正确的翻译成Mongo表达式
{aggregate([{ "$group" : { "dept" : "$DepartmentID", "status" : "$Status", "userCount" : { "$sum" : }, "_id" : } }])}
而使用传统的linq写法就可以被mongo驱动很好的翻译
var gg = from a in _webManageUsersRepository.GetModel()
group a by new
{
dept = a.DepartmentID,
status = a.Status
} into g
select new RoleCount
{
dept = g.Key.dept,
status = g.Key.status,
userCount = g.Count()
};
下面生成的代码是正确的
aggregate([{ "$group" : { "_id" : { "dept" : "$DepartmentID", "status" : "$Status" }, "__agg0" : { "$sum" : } } }, { "$project" : { "dept" : "$_id.dept", "status" : "$_id.status", "userCount" : "$__agg0", "_id" : } }])}
可以在mongo客户端上看到正确的结果
aaarticlea/png;base64,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" alt="" />
坏事
对count()方法完成不支持,不推荐使用,如果要用到count(),建议使用mongo原生态的,而不是linq的
Stopwatch sw1 = new Stopwatch();
sw1.Restart();
var a1 = _webManageUsersRepository.Count(i => true);//性能好
sw1.Stop();
var at1 = sw1.ElapsedMilliseconds; Stopwatch sw = new Stopwatch();
sw.Restart();
var a = _webManageUsersRepository.GetModel().Count();//性能差
sw.Stop();
var at = sw.ElapsedMilliseconds;
MongoDB学习笔记~关于官方驱动集成IQueryable之后的一些事的更多相关文章
- MongoDB学习笔记系列
回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...
- MongoDB学习笔记系列~目录
MongoDB学习笔记~环境搭建 (2015-03-30 10:34) MongoDB学习笔记~MongoDBRepository仓储的实现 (2015-04-08 12:00) MongoDB学习笔 ...
- MongoDB学习笔记:快速入门
MongoDB学习笔记:快速入门 一.MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.M ...
- MongoDB学习笔记二- Mongoose
MongoDB学习笔记二 Mongoose Mongoose 简介 之前我们都是通过shell来完成对数据库的各种操作, 在开发中大部分时候我们都需要通过程序来完成对数据库的操作 而Mongoose就 ...
- mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)
最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...
- MongoDB学习笔记(转)
MongoDB学习笔记(一) MongoDB介绍及安装MongoDB学习笔记(二) 通过samus驱动实现基本数据操作MongoDB学习笔记(三) 在MVC模式下通过Jqgrid表格操作MongoDB ...
- PHP操作MongoDB学习笔记
<?php/*** PHP操作MongoDB学习笔记*///*************************//** 连接MongoDB数据库 **////*************** ...
- Solr学习笔记之2、集成IK中文分词器
Solr学习笔记之2.集成IK中文分词器 一.下载IK中文分词器 IK中文分词器 此文IK版本:IK Analyer 2012-FF hotfix 1 完整分发包 二.在Solr中集成IK中文分词器 ...
- MongoDB 学习笔记(原创)
MongoDB 学习笔记 mongodb 数据库 nosql 一.数据库的基本概念及操作 SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据库 table ...
随机推荐
- 【字符编码】字符编码 && Base64编码算法
一.前言 在前面的解决乱码的一文中,只找到了解决办法,但是没有为什么,说白了,就是对编码还是不是太熟悉,编码问题是一个很简单的问题,计算机从业人员应该也必须弄清楚,基于编码的应用有Base64加密算法 ...
- jackson error 含义log
1. 反序列化失败,类型不匹配 Caused by: com.fasterxml.jackson.databind.JsonMappingException: Can not deserial ize ...
- 一个简单的Webservice的demo,简单模拟服务
前段时间一直在学习WCF,匆匆忙忙的把<WCF全面解析>和<WCF服务编程>看了一遍,好多东西都不是很懂,又听了一下WCF分布式开发的网络教程,算是马马虎虎的明白点了.回顾了一 ...
- Elasticsearch 教程--分布式集群
集群 补充章节 正如前文提到的,这就是第个补充的章节,这里会介绍 Elasticsearch 如何在分布式环境中运行. 本章解释了常用术语,比如 集群 (cluster), 节点 (node) 以及 ...
- Rafy 领域实体框架设计 - 重构 ORM 中的 Sql 生成
前言 Rafy 领域实体框架作为一个使用领域驱动设计作为指导思想的开发框架,必然要处理领域实体到数据库表之间的映射,即包含了 ORM 的功能.由于在 09 年最初设计时,ORM 部分的设计并不是最重要 ...
- Win10 UWP系列:更新UWP时注意的问题——TargetDeviceFamily
前几天把CurrencyExchanger提交到微软参加Master认证,结果没有通过,反馈了一些错误,看来微软检查还是比较仔细的. 错误主要有: Visual feedback helps user ...
- 基于DevExpress的Winform程序安装包的制作
在我们做系统开发的时候,都会面临一个安装包制作的问题,如何把我们做好的系统,通过安装包工具整合成一个安装包给客户进行安装.安装包的优势就是一步步安装就可以了,不用复制一大堆文件给客户,还怕缺少那个文件 ...
- android Can't bind to local 86XX for debugger
For some reason eclipse DDMS always gives the error 'Can't bind to local 86XX for debugger' every ti ...
- 1、怎样设置C#OpenFileDialog(文件选择窗体)的指定路径、文件格式等属性(设置打开默认路径、文件格式、窗体显示文本)
C#的OpenFileDialog的常用属性设置 1.设置属性 1)设置弹出的指定路径(绝对路径.相等路径) 2)设置标题 3)设置文本格式 2.打开方式1(绝对路径) 2.1) 打开的路径
- csharp: Oracle Stored Procedure DAL using ODP.NET
paging : http://www.codeproject.com/Articles/44858/Custom-Paging-GridView-in-ASP-NET-Oracle https:// ...