数据库-mongodb-高级查询表达式
不等于 $nq
|
1
2
|
SQL : select * where != 3NOSQL : db.goods.find({cat_id:{$ne:3 }},{cat_id:1,id:0}); |
NOSQL后面的这个cat_id:1就是显示,id:0就是不显示的意思
高于3000元的商品
|
1
|
db.goods.find({shop_rice:{$gt:3000},{goods_name:1,shop_rice:1}); |
| 运算符 | 对应mysql运算符 |
| $gt | > |
| $gte | >= |
| $in | in |
| $lt | < |
| $lte | <= |
| $ne | != |
| $nin | not in |
| $all | 无对应项,指数组所有单元匹配 |
in的操作
|
1
|
db.goods.find({cat_id:{$in:[4,11]}},{cat_id:1,cat_name:1}); |
all
|
1
2
3
|
db.stu.insert({name:'lily',hobby:['a','b','c']});db.stu.insert({name:'lucy',hobby:['b','c','d']});db.stu.find({hobby:{$all:['b','c']}}); // 这个会查处两条出来,因为两条里面都有'b','c' |
逻辑运算符
| 名称 | 描述 |
| $or | or |
| $and | and |
| $not | not |
| $nor | 无对应项,“所有举例条件都不成功,则为真” |
$and用法
db.goods.find({$and:[{shop_price:{$lt:3000},{shop_price:{$gt:2000}}]},{goods_name:1,goods_count:1});
$nin的用法
|
1
|
db.goods.find({$and:[{cat_id:{$ne:3}},{cat_id:{$ne:11}}]},{goods_name:1,id:1}); |
等同于
|
1
|
db.goods.find({$and:[$nin:[3,11]},{goods_name:1,id:1}); |
$nor用法
既不是3,也不是4
|
1
|
db.goods.find({$nor:[{cat_id:3},{cat_id:4}]},{goods_name:1,goods_price:1}); |
元素运算符
| 名称 | 描述 |
| $exists | 某列存在则为真 |
| $mod | 满足某求余条件则为真 |
| $type | 数据为某类型则为真 |
good_id除5取余,余数为0 的被选择出来
|
1
|
db.goods.find({good_id:{$mod:[5,0]}},{goods_name:1,goods_number:1}); |
找出文档中存在age字段的记录
|
1
|
db.stu.find({age:{$exists:1]}); |
类型判断有个列表
|
1
|
db.foo.find({age:{$type:2}}); |

$where
这个关键字的用法是将mongodb存储的二进制先转换为json格式的数据,然后再调用js的引擎来执行js代码,效率比较低,不推荐使用,好处是表达式可以非常的复杂,如果难以实现又不追求效率就可以考虑这种写法
|
1
|
db.goods.find({$where:'this.shop_price>3000'},{shop_price:1,goods_name:1}); |
加上多种条件后复杂的判断
|
1
|
db.goods.find({$where:'this.shop_price<3000 && this.shop_price > 2000 || this.price = 1000'},{shop_price:1,goods._name:1}); |
$regex 正则匹配为真 效率不高
db.goods.find({goods_name:{$regex:/^诺基亚.*/}},{goods_name:1,goods_id:1});
数据库-mongodb-高级查询表达式的更多相关文章
- mongoDB 高级查询语法
http://www.cnblogs.com/ITAres/articles/2084794.html本文参考自官方的手册:http://www.mongodb.org/display/DOCS/Ad ...
- mongoDB高级查询$type4array使用解析
今天在使用mongoDB高级查询$type:符号 -- 4代指Array类型发现一个问题. $type符号: $type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果. 下面是mong ...
- MongoDB高级查询详细
前言 前几篇,老玩家绕道即可,新手晚上闲着也是蛋疼,不如把命令敲一边,这样你就会对MongoDB有一定的掌握啦.如果没有安装MongoDB去看我的上一篇博客 MongoDB下载安装与简单增删改查 前 ...
- mongodb高级查询
前几篇,老玩家绕道即可,新手晚上闲着也是蛋疼,不如把命令敲一边,这样你就会对MongoDB有一定的掌握啦.如果没有安装MongoDB去看我的上一篇博客 MongoDB下载安装与简单增删改查 前奏:启 ...
- Sql Server数据库设计高级查询
-------------------------------------第一章 数据库的设计------------------------------------- 软件开发周期: (1 ...
- MongoDB高级查询用法大全
转载 http://blog.163.com/lgh_2002/blog/static/440175262012052116455/ 详见官方的手册: http://www.mongodb.org/d ...
- Mongodb 基础 查询表达式
数据库操作 查看:show dbs; 创建:use dbname; // db.createCollection('collection_name'); 隐式创建,需要创建的数据库中有表才表示创 ...
- SQL数据库— <3>高级查询、常用函数 --摘录网络
SQL Server T-SQL高级查询 高级查询在数据库中用得是最频繁的,也是应用最广泛的. Ø 基本常用查询 --select select * from student; --all 查询所有 ...
- Mongodb高级查询【二】
上一篇文章,写了mongodb常规操作,继续写入,本章主要讲高级查询,文本,聚集,大数据查询. Mongodb的查询语法是很多的,是NOSQL队伍中比较丰富的一个.当然有很多查询跟关系型查询无法相比. ...
- 10月17日下午MySQl数据库CRUD高级查询
高级查询:1.连接查询 #适用于有外键关系的 没有任何关系没法用select * from Info,Nation #同时查询这俩表并把两表每个数据相互组合,形成笛卡尔积 select * from ...
随机推荐
- setOutputFormat called in an invalid state: 1
在编写一个简单的录像应用程序的时候,爆出例如以下异常: E MediaRecorder: setOutputFormat called in an invalid state: 1 E Android ...
- 数据库技术_Orcale技术(0002)_5分钟会用存储过程_存储过程实例
基础技术: 样例业务功能: 1.依据传入的类型A_TYPE联合查询PROCEDURE_TEST_A表.PROCEDURE_TEST_A_SUB表中的数据.并显示主要内容. 2.依据传入的类型A_TYP ...
- 详解Dialog(二)——有关列表的构建
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 前言:这段时间真是忙啊忙啊忙,元旦三天假加了两天班,已经连续六周只放一天了,天天加班到十点多,真是有一口血吐在屏幕上的感觉了,博 ...
- ES shrink ——一般是结合rollover一起使用的,一开始没有看懂官方shrink文档,当看了这个之后就明白了
rollover Elasticsearch 从 5.0 开始,为日志场景的用户提供了一个很不错的接口,叫 rollover.其作用是:当某个别名指向的实际索引过大的时候,自动将别名指向下一个实际索引 ...
- 【转】ios蓝牙开发学习笔记(四)ios蓝牙应用的后台处理 -- 不错
原文网址:http://dev.ailab.cn/article-1038-220511-1.html 默认情况下,当应用进入后台或挂起时,蓝牙任务是不执行的.但是,你可以把应用声明为支持蓝牙后台执行 ...
- Eclipse-Error:笔记-1
ylbtech-Eclipse-Error:笔记-1 1.返回顶部 1. Whitelabel Error PageThis application has no explicit mapping f ...
- shp系列(二)——利用C++进行shp文件的读(打开)
1.各数据类型及其字节数 BYTE 1; char 1; short 2; int 4; double 8; 2.位序big和little及其转换 对于位序是big的 ...
- SilverLight Q&A
1.在学校prism,Unity框架的时候,遇到的问题“The IModuleCatalog is required and cannot be null in order to initialize ...
- Visual Studio蛋疼问题解决(2)
Astyle配置 1.下载并安装Astyle(AstyleExtension.vsix),重新启动VS: 2.工具->选项,从左侧列表找到AStyleFormatter,在右边编辑参数,参考设置 ...
- HashMap以及ConcurrentHashMap
HashMap源码相关 HashMap实现原理及源码分析 总之就是这个博客,简直就是源码带逛,开心,最关键的是下面的图像 另外,自己的理解加上源码,总结如下 hash,原义散列,就是一对一: hash ...