数据库-mongodb-高级查询表达式
不等于 $nq
1
2
|
SQL : select * where != 3 NOSQL : 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 ...
随机推荐
- 【cl】控制台执行Java程序
1.设置CLASSPATH环境变量,指向package所在的目录,一般是项目文件夹的bin目录 2.执行 java package.ClassName linux: 方法一: 步骤1:export ...
- 压缩&&解压命令汇总
下面是搜集的Linux系统下,压缩&&解压命令,以备參考使用. .tar 解包: tar xvf FileName.tar 打包:tar cvf FileName.ta ...
- Highcharts构建空饼图
Highcharts构建空饼图 空饼图就是不包括不论什么节点的饼图. 在Highcharts中,假设数据列不包括数据,会自己主动显示空白. 这样浏览者无法推断当前图表为什么类型.绘制一个空饼图的变通方 ...
- oc19--继承1
// // Phone.h // day13 #import <Foundation/Foundation.h> // 被继承的这个类我们称之为父类/ 超类 @interface Phon ...
- 手机对支持128G扩展内存的介绍
具体说明: 1,JB2之前的版本只支持SD2.0 SPEC,SD2.0 SPEC定义了最大支持SD卡容量到32G. 2,JB2及以后的版本支持SD3.0 SPEC,SD3.0的SPEC定义了最大支持S ...
- Wifi加密协议漏洞
互联网,移动互联网,物联网给我们带来便利的同时,也更容易让我们被黑客攻击,安全问题也越来越突出重要.比如近些天出现的wpa2的漏洞,让广泛应用的Wifi处于危机状态,说不定哪天你身边黑客就利用它攻击获 ...
- 使用Azure Docker容器注册表服务
1.登录你的Azure 容器注册表服务 az acr login --name ledesign 2.给你本地准备好的Image打上上云之前的版本标签 docker tag ledesign-serv ...
- mybatis 高级映射和spring整合之与Spring整合(6)
mybatis 高级映射和spring整合之mybatis与Spring整合 3.0 mybatis和spring整合(掌握) 3.1 整合思路 需求spring通过单例方式管理SqlSessionF ...
- Eclipse中添加对Python的中文支持
原文链接:http://down.51cto.com/data/751371 首先要确保eclipse编辑器环境的编码为utf8,这个是大前提:其次如果py文件中含有中文字符的话,需要在py文件中对编 ...
- 给DBA 的mysql脚本格式