query更多的筛选用法
比较操作符
$eq : = 写法:db.class0.find({age:{$eq:18}},{name:1,_id:0}); 查找年龄等于18
$lt :<
$lte : <=
$gt : > db.class0.find({age:{$gt:17,$lt:20}},{name:1,_id:0}); 查找大于17且小于20
$gte: >=
$ne : !=
$in : 包含 db.class0.find({age:{$in:[17,19]}},{name:1,_id:0}); 查找17和19的年龄
$nin: 不包含
逻辑操作符:
$and 逻辑与
1. 在query如果写多个条件默认即为and关系
db.class0.find({age:{$lt:18},sex:{$eq:"w"}},{_id:0});
2.逻辑与$and
db.class0.find({$and:[{age:{$lt:18}},{sex:"w"}]},{});
$or 逻辑或
查找年龄小于17或大于19的数据
db.class0.find({$or:[{age:{$lt:17}},{age:{$gt:19}}]},{});
$not 逻辑非
查找性别不为男的
db.class0.find({sex:{$not:{$eq:"m"}}},{});
$nor 既不也不
姓别既不能是男,年龄也不小于18
db.class0.find({$nor:[{sex:{$eq:"m"}},{age:{$lt:18}}]},{});
$all 查找数组同时包含多项文档
查找同时包含49, 67的文档
db.class1.find({score:{$all:[49,67]}},{_id:0})
$size 通过数组个数来进行查找
查找分数域中的文档个数为2
db.class1.find({score:{$size:2}},{_id:0})
$slice 跳过第n个,显示m个
显示m个
db.class1.find({},{_id:0,score:{$slice:m}})
跳过第n个,显示m个
db.class1.find({},{_id:0,score:{$slice:[n,m]}})
$exists 通过某个域是否存在筛选
查找sex域不存在的文档
db.class1.find({sex:{$exists:false}},{_id:0})
$mod 余数查找
找出年龄为双数的文档
db.class1.find({age:{$mod:[2,0]}})
$type 找出指定数据类型的文档
找出age域值类型为1的文档
db.class1.find({age:{$type:1}},{_id:0})
最新文章
- windows消息钩子注册底层机制浅析
- 手动编译安装docker环境,以及偶尔出现的bug
- Google protobuf proto文件编写规则
- 用rpm -e 将yum命令删除了,如何修复
- 【leetcode】Binary Tree Postorder Traversal (hard) ☆
- Swing Note
- shell 脚本实战笔记(6)--集群环境配置检测
- 立体匹配:关于Middlebury提供的源码的简化使用
- Gap Locks 区间锁
- ueditor富文本编辑的使用方法
- PHP专业开发IDE——Zend Studio 10.5预览版发布
- oc是一个全动态语言,oc的一切都是基于runtime实现的!
- Java 面试知识点解析(三)——JVM篇
- 《WAP团队》作业四——基于原型的团队项目需求调研与分析
- H5拖动火狐自动打开新标签
- (C/C++学习笔记) 二十. 文件和流
- mvc和mtv
- 电脑CPU的发展史(转)
- Mybatis generator 配置
- 利用jaxb实现xml和bean的相互转换