MongoDB学习(翻译4)
- EndsWith
此方法用于测试文档对象的字符串类型的字段或者属性是否以某一个特定的字串结束
var query =
from c in collection.AsQueryable<C>()
where c.S.EndsWith("abc")
select c;
// or
var query =
collection.AsQueryable<C>()
.Where(c => c.S.EndsWith("abc"));
可转化为下面mongodb查询语句(使用了正则表达式)::
{ S : /abc$/ }
- enum 比较 (==, !=, <, <=, >, >=)
枚举字段或者属性可以和同一种类型的枚举常量比较,其真正的比较是基于其底层整数的比较。
public enum E { None, A, B };
var query =
from c in collection.AsQueryable<C>()
where c.E == E.A
select c;
// or
var query =
collection.AsQueryable<C>()
.Where(c => c.E == E.A);
可转化为下面mongodb查询语句
{ E : 1 }
LINQ的实现需要考虑序列化后值得表示方式,所以如果你配置了映射类通过字符串而不是整数来存储枚举值,那么将产生下面的MongoDB查询语句:
{ E : "A" }
- GetType (返回Type)
这个方法很像OfType方法,会创建一个鉴别器对结果进行更近一步筛选
var query = from c in collection.AsQueryable<C>() where c.GetType() == typeof(D) select c; // or var query = collection.AsQueryable<C>() .Where(c => c.GetType() == typeof(D));
可大致转化为下面mongodb查询语句(取决于你创建鉴别器的方式)
{ _t : "D" }
- In (LINQ to MongoDB 扩展方法)
这个方法用于测试一个字段或者属性是否等于提供的一组值中的任何一个。
var query =
from c in collection.AsQueryable<C>()
where c.X.In(new [] { , , })
select c;
// or
var query =
collection.AsQueryable<C>()
.Where(c.X.In(new [] { , , }));
可转化为下面mongodb查询语句:
{ X : { $in : [1, 2, 3] } }
- Inject
该方法是一个“伪方法”,用于把一个MongoDB查询注入到LINQ中,下面的查询查找大于0的64位整数。
var query =
from c in collection.AsQueryable<C>()
where c.X > && Query.Type("X", BsonType.Int64).Inject()
select c;
// or
var query =
collection.AsQueryable<C>() .Where(c => c.X > 0 && Query.Type("X", BsonType.Int64).Inject());
可转化为下面mongodb查询语句:
{ X : { $gt : 0, $type : 18 } }
- is C#关键字
和GetType方法一样,此处不在翻译
var query = from c in collection.AsQueryable<C>() where c is D && ((D)c).B == select c; // or var query = collection.AsQueryable<C>() .Where(c => c is D && ((D)c).B == );
可大致转化为下面mongodb查询语句(取决于你创建鉴别器的方式)
{ _t : "D", B : 1 }
- IsMatch (正则表达式方法)
这个方法用于测试字符串类型的字段或者属性是否匹配一个正则表达式。
var regex = new Regex("^abc");
var query =
from c in collection.AsQueryable<C>()
where regex.IsMatch(c.S)
select c;
// or
var query =
collection.AsQueryable<C>()
.Where(c => regex.IsMatch(c.S));
可转化为下面mongodb查询语句:
{ S : /^abc/ }
也可以使用静态IsMatch方法:
var query = from c in collection.AsQueryable<C>() where Regex.IsMatch(c.S, "^abc") select c; // or var query = collection.AsQueryable<C>() .Where(c => Regex.IsMatch(c.S, "^abc"));
可转化为下面mongodb查询语句:
- Length (数组集合长度)
这个方法用于测试数组集合类型的字段或者属性是否存在一个特定数量的项。
var query = from c in collection.AsQueryable<C>() where c.A.Length == select c; // or var query = collection.AsQueryable<C>() .Where(c => c.A.Length == );
可转化为下面mongodb查询语句:
{ A : { $size: 3 } }
- % (Mod运算符)
这个方法用于对文档属性或者字段进行求余运算,下面查询匹配所有x属性为偶数的文档
var query = from c in collection.AsQueryable<C>() where c.X % == select c; // or var query = collection.AsQueryable<C>() .Where(c => c.X % == );
可转化为下面mongodb查询语句:
{ X : { $mod : [2, 1] } }
- ! (Not 操作符)
此方法用于对测试结果进行逻辑非操作
var query = from c in collection.AsQueryable<C>() where !(c.X > ) select c; // or var query = collection.AsQueryable<C>() .Where(c => !(c.X > ));
可转化为下面mongodb查询语句:
{ X : { $not : { $gt : 1 } } }
注意:
在c.X缺失或者不是数值类型时,!(c.X > 1)不等同于 (c.X <= 1)
数值比较 (==, !=, <, <=, >, >=)
数值类型的字段或者属性可以使用上述任何一种比较方式
var query = from c in collection.AsQueryable<C>() where c.X == && c.Y < select c; // or var query = collection.AsQueryable<C>() .Where(c => c.X == && c.Y < );
可转化为下面mongodb查询语句:
{ X : 0, Y : { $lt : 100 } }
- || (Or 运算符)
逻辑或运算,进行或比较
var query = from c in collection.AsQueryable<C>() where c.X > || c.Y > select c; // or var query = collection.AsQueryable<C>() .Where(c => c.X > || c.Y > );
可转化为下面mongodb查询语句:
{ $or : [{ X : { $gt : 0 } }, { Y : { $gt : 0 } }] }
- StartsWith
这个方法用于测试文档对象的字符串字段或者属性是否以某个特定的子串开始
var query =
from c in collection.AsQueryable<C>()
where c.S.StartsWith("abc")
select c;
// or
var query =
collection.AsQueryable<C>()
.Where(c => c.S.StartsWith("abc"));
可转化为下面mongodb查询语句: (可用正则表达式):
- ToLower, ToLowerInvariant, ToUpper, ToUpperInvariant这些方法用于使文档对象的字符串字段或者属性转为相应的大小写模式
var query = from c in collection.AsQueryable<C>() where c.S.ToLower() == "abc" select c; // or var query = collection.AsQueryable<C>() .Where(c => c.S.ToLower() == "abc");
可转化为下面mongodb查询语句: (可用正则表达式):
{ S : /^abc$/i }
C#官方驱动LINQ查询部分结束,下篇C#官方驱动序列化文档对象待续
MongoDB学习(翻译4)的更多相关文章
- MongoDB学习3
MongoDB学习(翻译3) 支持的where字句(比较多,今天先写一部分) 本节介绍支持的where字句 正如前面提到的,不是所有的C#表达式都支持where子句.您可以以此文为指导,或者你可以 ...
- MongoDB学习2
MongoDB学习(翻译2) C#驱动之LINQ教程 介绍 本教程涵盖了1.8发布版本对linq查询的支持. 开始本教程之前,你应该至少阅读下C#驱动教程关于C#驱动的介绍 快速开始 首先,添加下面命 ...
- MongoDB学习笔记二- Mongoose
MongoDB学习笔记二 Mongoose Mongoose 简介 之前我们都是通过shell来完成对数据库的各种操作, 在开发中大部分时候我们都需要通过程序来完成对数据库的操作 而Mongoose就 ...
- MongoDB学习笔记系列
回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...
- MongoDB学习笔记—Linux下搭建MongoDB环境
1.MongoDB简单说明 a MongoDB是由C++语言编写的一个基于分布式文件存储的开源数据库系统,它的目的在于为WEB应用提供可扩展的高性能数据存储解决方案. b MongoDB是一个介于关系 ...
- Mongodb学习笔记一(Mongodb环境配置)
Mongodb学习 说明: MongoDB由databases组成,database由collections组成,collection由documents组成,document由fileds组成.Mo ...
- MongoDB学习记录
一.操作符 "$lt" :"<""$lte" :"<=""$gt" :"> ...
- PHP操作MongoDB学习笔记
<?php/*** PHP操作MongoDB学习笔记*///*************************//** 连接MongoDB数据库 **////*************** ...
- MongoDB学习:(二)MongoDB简单使用
MongoDB学习:(二)MongoDB简单使用 MongoDB使用: 执行mongodb的操作之前,我们需要运行命令,来进入操作命令界面 >mongo 提示该错误,说明我们系统缺少一个补丁,该 ...
- MongoDB学习:(一)MongoDB安装
MongoDB学习:(一)MongoDB安装 MongoDB介绍: 直接百科了: MongoDB安装: 1:下载安装: MongoDB安装:https://www.mongodb.com/do ...
随机推荐
- form表单target的用法,实现无刷新提交页面
form表单的target,当将iframe设置为隐藏时,可以实现当前页表单提交而不进行跳转刷新.代码如下,首页在页面里准备一个form表单和一个iframe. <form action=&qu ...
- 10分钟学会Linux
10分钟学会Linux有点夸张,可是能够让一个新手初步熟悉Linux中最重要最主要的知识,本文翻译的英文网页在众多Linux入门学习的资料中还是很不错的. 英文地址:http://freeengine ...
- cocos2d 缓存池 对象的再利用
1.简单的叙述说明池 例如,我们知道,游戏的游戏类型跑酷,游戏元素都在不断重复.游戏的内容将继续从屏幕右侧的创建,当元件在屏幕的左侧的,将消失.假设不变new 对象.release 对象 性能影响.怎 ...
- update与fixedupdate差别
猴子原创,欢迎转载.转载请注明: 转载自Cocos2D开发网--Cocos2Dev.com,谢谢! 原文地址: http://www.cocos2dev.com/?p=307 今天有人问我问什么我在处 ...
- .net的自定义JS控件,运用了 面向对象的思想 封装 了 控件(.net自定义控件开发的第一天)
大家好!我叫刘晶,很高兴你能看到我分享的文章!希望能对你有帮助! 首先我们来看下几个例子 ,就能看到 如何 自定义控件! 业务需求: 制作 一个 属于 自己的 按钮 对象 ,然后 像 ...
- C# WinForm开发系列 - WebBrowser
原文:C# WinForm开发系列 - WebBrowser 介绍Vs 2005中带的WebBrowser控件使用以及一些疑难问题的解决方法, 如如何正确显示中文, 屏蔽右键菜单, 设置代理等; 收集 ...
- Springmvc 配置json输出的几种方式
Spring MVC 3.0 返回JSON数据的几种方法: 1. 直接 PrintWriter 输出 2. 使用 JSP 视图 3. 使用Spring内置的支持 // Spring MVC 配置 &l ...
- 关于Installshield里一些常见问题的解答—艾泽拉斯之海洋女神出品
原文:关于Installshield里一些常见问题的解答-艾泽拉斯之海洋女神出品 上一篇:一个完整的安装程序实例—艾泽拉斯之海洋女神出品(五) --补遗转载时请务必保留转载出处和由艾泽拉斯之海洋女神出 ...
- Visual Studio测试工具TestDriven.NET2.2
原文:Visual Studio测试工具TestDriven.NET2.2 关于TestDriven.NET的文章很多,有很详细的说明,我不太会单元测试只是每次要运行程序才能调试觉得太麻烦了,所以找了 ...
- 我的Android 4 学习系列之数据库和Content Provider
目录 创建数据库和使用SQLite 使用Content Provider.Cusor和Content Value来存储.共享和使用应用程序数据 使用Cursor Loader异步查询Content P ...