mongoDB6--查询表达式
上一篇我们介绍了mongodb的一些表达式的深入应用。可能大家觉得有些
指令比较难记,下面给大家介绍一些简洁的表达式。
给大家介绍的是以下两个指令:
分别是$where、$regex
(1)$where指令
我们使用$where来代替之前的查询指令。
我们查询商品价格大于5000的商品:
$where的原理是,在mongodb中,存储的是一个一个的对象,对象中是各种属性,
我们可以把对象一个一个的遍历一遍,遍历的过程中就会把磁盘上的二进制数据
转化成一个个json对象,然后把其中的属性值读出来,那么我们就可以使用js中的
判断式去引用。
使用$where会使查询表达式变得非常的简洁易懂,如:
例:取出价格大于100且小于300,或者大于3000且小于5000的商品($or)
使用一般的表达式:
db.goods.find({$or:[{$and:[{shop_price:{$gt:100}},{shop_price:{$lt:300}}]},{$and:[{shop_price:{$gt:3000}},{shop_price:{$lt:5000}}]}]},{shop_price:1,goods_name:1,_id:0});
使用$where表达式
db.goods.find({$where:'this.shop_price>100 && this.shop_price<300 || this.shop_price>3000 && this.shop_price<5000'},{shop_price:1,goods_name:1,_id:0});
(2)$regex
$regex表达还实际起到是“正则表达式”的作用。
例:查询商品名开头含有“诺基亚”的商品
db.goods.find({goods_name:{$regex:/^诺基亚.*/}},{goods_name:1,_id:0});
不推荐使用$where和$regex表达式操作大量数据,原因是因为必须将磁盘上的二进制数据
转化成一个个json对象,才能使用$where和$regex表达式将数据读出来,而不是
直接操作二进制数据,这样查询大量数据就会影响效率。
至此,我们的查询表达式全部介绍完毕。
转载请注明出处:
mongoDB6--查询表达式的更多相关文章
- 如何使用 Entity Framework 构造动态查询表达式
一般的程序员做上几年以后, 或多或少的都有些代码的积累, 我也不例外. 作为微软技术程序员, 自从Linq和EF出来之后, 就基本上爱不释手了, 且不说执行效率的问题, 单单就开发效率和代码的可移植性 ...
- Linq查询表达式
目录 1. 概述 2. from子句 3. where子句 4. select子句 5. group子句 6. into子句 7. 排序子句 8. let子句 9. join子句 10. 小结 1. ...
- 《C#本质论》读书笔记(15)使用查询表达式的LINQ
15.1 查询表达式的概念 简单的查询表达式 private static void ShowContextualKeywords1() { IEnumerable<string> sel ...
- lambda表达式和查询表达式
(1)Lambda表达式定义: Lambda是创建匿名函数的另一种形式.它比对应的匿名方法更加的简化.因此,所有的情况都推荐使用Lambda表达式. 它可以包括表达式和语句,并且用于创建委托和事件 ...
- LINQ 查询表达式(C# 编程指南)
语言集成查询 (LINQ) 是一组技术的名称,这些技术建立在将查询功能直接集成到 C# 语言(以及 Visual Basic 和可能的任何其他 .NET 语言)的基础上. 借助于 LINQ,查询现在 ...
- Linq专题之创建Linq查询表达式
本节我们主要介绍一下如何创建查询集合类型,关系数据库类型,DataSet对象类型和XML类型的数据源的Linq查询表达式. 下面在实例代码ReadyCollectionData()函数创建了准备的数据 ...
- LinQ实战学习笔记(三) 序列,查询操作符,查询表达式,表达式树
序列 延迟查询执行 查询操作符 查询表达式 表达式树 (一) 序列 先上一段代码, 这段代码使用扩展方法实现下面的要求: 取进程列表,进行过滤(取大于10M的进程) 列表进行排序(按内存占用) 只保留 ...
- LINQ之路 5:LINQ查询表达式
书写LINQ查询时又两种语法可供选择:方法语法(Fluent Syntax)和查询表达式(Query Expression). LINQ方法语法的本质是通过扩展方法和Lambda表达式来创建查询.C# ...
- C# 标准查询表达式
一.标准查询运算符 1.C#提供了标准查询运算符,例如我想选择专利一系列(pantents)中以年份19开头的专利,可以用如下语句: IEnumerable<Patent> pantent ...
- Linq之查询表达式语法详解
1.闲言碎语 由于项目的需要接触到Linq,刚开始有些不适应,好多概念都很模糊.不过经过一段时间的摸索,慢慢地对Linq有了一个更加深入的了解.在此记录一下备忘. 2.查询表达式语法 执行L ...
随机推荐
- iOS跳转系统设置界面
iOS开发之如何跳到系统设置里的各种设置界面:http://www.superqq.com/blog/2015/12/01/jump-setting-per-page/ iOS:你App的设置做对了吗 ...
- Dynamic Programming - leetcode [动态规划]
115. Distinct Subsequences 96. Unique Binary Search Trees 120. Triangle 123. Best Time to Buy and Se ...
- 洛谷-统计数字-NOIP2007提高组复赛
题目描述 Description 某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*10^9).已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照 ...
- HTML5 <meta> 标签属性
基本标签SEO 优化为移动设备添加 viewportWindows 8其他 禁止数字识自动别为电话号码不让android识别邮箱每 8 秒刷新一次页面移动端的头部标签和meta 基本标签 声明文档使用 ...
- 学习Java第一篇——Java 安装及环境搭配
内容提要: 1.下载JDK: 2.安装JDK: 3.配置JDK; 第一,下载JDK: 1.登陆网址:www.oracle.com 2.点击 Downloads 3.选择 Java SE 4.选择 ...
- 推荐几个好的 Maven 常用仓库网址
注意,以下内容转载自:推荐几个好的 Maven 常用仓库网址 Maven 确确实实是个好东西,用来管理项目显得很方便,但是如果是通过 Maven 来远程下载 JAR 包的话,我宿舍的带宽是4兆的,4个 ...
- 关于IT实例教程
W3c:http://www.w3school.com.cn/ 易百:http://www.yiibai.com/ 菜鸟教程:http://www.runoob.com/
- 优秀代码要求(转自http://www.cnblogs.com/brishenzhou/p/6284188.html)
一段优秀的代码,它一般需要满足以下几个条件: #统一规范# 所有的代码,第一前提必须是统一规范,而常见的统一规范主要包括有以下内容: 1)统一编辑器规范 在团队开发中,我们并不对各个开发人员使用的编辑 ...
- MyEclipse中用Maven创建Web项目
方法/步骤 new --> other 1.Wizards: mvaen 2.Maven Project 3.Next Use Default Workspace Locatio ...
- incomplete type is not allowed
keil环境下,报错#70: incomplete type is not allowed,解决 mqtt_conf.h 定义了一个结构体 mqtt_buffer.h #include <std ...