Mongo简单查询总结
mongo 简单查询
db.ansheng.findOne()//返回第一条匹配到的数据
db.ansheng.findOne({"aaaaa":4})
db.ansheng.find()//最简单的查询
db.ansheng.find({"aaaaa":2})//返回匹配到的数据
db.ansheng.find({"aaaaa":2}).limit(1)//根据查询条件(find)返回指定条数(limit)的数据
db.ansheng.find({"aaaaa":2}).skip(1).limit(1);//根据查询条件(find)命中N条数据,跳过前(skip)条数据,返回(limit)条数据
db.ansheng.find({"aaaaa":2}, "book":["在绝望中寻找希望"])
db.ansheng1.find({aaa:123, bbb:3211})//多个查询语句
返回指定的键
有时并不需要把文档中所有的键/值对都返回,这时候可以用find的第二个参数来返回指定的键
db.ansheng.find({},{aaaaa:1, list:1})
db.ansheng.findOne({},{aaaaa:1, list:1})
默认下_id总是被返回的,这时候可以使用第二个参数剔除掉他
db.ansheng.find({},{_id:0,aaaaa:1})
db.ansheng.find({},{_id:0})//如果只输入 0 的话,别的参数会全部返回
指定范围的查询
查询中我们经常会遇到大于多少
"$lt"、"$lte"、"$gt"、"$gte"分别对应
< <= > >=
db.ansheng.find({"aaaaa":{"$lt":6,"$gt":3}})
aaaaa 大于3 小于6 的数据
db.ansheng.find({AddTime:{"$lt":new Date("05/05/2016")}})
时间类型的判断
in
日常查询中我们我们经常会遇到,根据一组ID或者别的数据进行查询,这个时候我们就需要使用$in这个查询器了
db.ansheng.find({aaaaa:{"$in":[2,3,4]}})
nin
$nin是和in相对应的,nin是返回与数组中都不匹配的数据
db.ansheng.find({aaaaa:{"$nin":[2,3,4]}})
or
or是或者的意思,只要满足 aaaaa = 3或者 flag = true两个任何一个条件,这条数据就会返回
db.ansheng.find({"$or":[{aaaaa:3},{flag:true}]})
nor
$nor 和 or 的意思正好相反 返回不满足指定条件的数据
db.ansheng.find({"$nor":[{aaaaa:3},{flag:true}]})
and
返回满足多个指定条件的数据
db.ansheng.find({"$and":[{aaaaa:2},{flag:true}]})
mod
$mod 是一个取模运算符,他会把查询的值除以第一个给定值,诺余数等于第二个给定值则匹配成功
db.ansheng.find({"aaaaa":{"$mod":[2,1]}}) 返回了 5、7、3 三条数据都满足除以2余1的条件
not
db.ansheng.find({"aaaaa":{"$not":{"$mod":[2,1]}}}) 上面的mod返回了 5、7、3 ,这个就返回除了 5、7、3 以外的数据
特定类型的查询
null
null类型有点奇怪
{ "_id" : ObjectId("572ab6c9734e0336c344e8b4"), "q" : 0 }
{ "_id" : ObjectId("572ab6c9734e0336c344e8b5"), "q" : 1 }
{ "_id" : ObjectId("572ab6c9734e0336c344e8b6"), "q" : 2 }
{ "_id" : ObjectId("572ab6c9734e0336c344e8b7"), "q" : 3 }
{ "_id" : ObjectId("572ab6c9734e0336c344e8b8"), "q" : 4 }
{ "_id" : ObjectId("572ab6c9734e0336c344e8b9"), "q" : 5 }
{ "_id" : ObjectId("572ab6c9734e0336c344e8ba"), "q" : null }
{ "_id" : ObjectId("572ab6c9734e0336c344e8bb"), "q" : null }
{ "_id" : ObjectId("572ab6c9734e0336c344e8bc"), "q" : null }
{ "_id" : ObjectId("572ab6c9734e0336c344e8bd"), "q" : null }
{ "_id" : ObjectId("572ab6c9734e0336c344e8be"), "q" : null }
由上面一个文档在这个文档中 前6条数据 q 都不为null
后5条数据q = null
db.ansheng2.find({q:null}) //这种方式确实可以匹配到 后面5条数据
db.ansheng2.find({qq:null}) //但是这种方式就有问题了他匹配到了全部的数据
db.ansheng2.find({qq:{"$in":[null],"$exists":true}}) 使用了 exists 就可以匹配成功了 0 条数据
更新中
Mongo简单查询总结的更多相关文章
- T-SQL简单查询语句
简单查询: 1.最简单查询(查所有数据)select * from 表名: 注:* 代表所有列select * from info 2.查询指定列select code,name from info ...
- MySQL数据库6 -查询基础,简单查询,条件查询,对查询结果排序
一.SELECT语句 SELECT COL1,COL2,....COLn FROM TABLE1,TABLE2,....TABLEn [WHERE CONDITIONS] -- 查询条件 [GROUP ...
- Linq的简单查询
Ling的简单查询,记在这里防止忘记,以便随时能够查看 List<int> intArr = new List<int>(); || i == select i; List&l ...
- Oracle单表的简单查询
Oracle单表的简单查询 查看表结构 desc emp; 查询所有列 Select * from emp; 查找所以部门编号(查指定的列) select deptnofrom emp; 查找编号不同 ...
- Oracle多表的简单查询
Oracle多表的简单查询 .多表查询 多表查询是指基于两个和两个以上的表或是视图的查询. 问题:显示雇员名,雇员工资及所在部门的名字[笛卡尔集]? select t.ename,t.sal,t1.d ...
- Oracle笔记(1) 简单查询、限定查询、数据的排序
Oracle笔记(四) 简单查询.限定查询.数据的排序 一.简单查询 SQL(Structured Query Language) 结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及 ...
- LINQ to Sql系列二 简单查询和联接查询
这一篇文章主要总结LINQ to sql的简单查询(单表查询)和联接查询(多表查询) 单表查询 需求是我们要输出TClass表中的结果.使用了from-in-select语句,代码如下: public ...
- SQL CRUD 简单查询
identity 自增长 primary key 主键 unique 唯一键 not null 非空 references 外键(引用) 1.删除表 drop table Student 2.修改表 ...
- Spring Data JPA 简单查询--接口方法
一.接口方法整理速查 下表针对于简单查询,即JpaRepository接口(继承了CrudRepository接口.PagingAndSortingRepository接口)中的可访问方法进行整理.( ...
随机推荐
- Android 编程下如何调整 SwipeRefreshLayout 的下拉刷新距离
SwipeRefreshLayout 的下拉刷新距离比较短,并且也没有提供设置下拉距离的 API,但是看 SwipeRefreshLayout 的源码,会发现有一个内部变量 mDistanceToTr ...
- HDU3586 Information Disturbing(树形DP)
题目大概说一棵树有边权,要删掉一些边,使叶子到达不了树根1且删掉边的权和小于等于m,问删掉边中最大权的最小值能是多少. 考虑问题规模,与转移的时间复杂度,用这么个状态dp: dp[u][k]表示在u结 ...
- ZOJ 3905 Cake ZOJ Monthly, October 2015 - C
Cake Time Limit: 4 Seconds Memory Limit: 65536 KB Alice and Bob like eating cake very much. One ...
- pingpang ball
#pragma strict var smooth=2.0; var tiltAngle=30.0; function Start () { } function Update () { transf ...
- Activity 生命周期及其栈管理方式
Activity 生命周期 Android 系统用栈的形式管理 Activity , 当新的 Activity 被创建是, 会被放置到栈顶, 这个 Activity 会进入到运行状态, 而前一个 Ac ...
- c++ insert iterators 插入型迭代器
insert iterators 插入型迭代器 (1)front inserters 前向插入迭代器 只适用于提供有push_front()成员函数的容器,在标准程序库中这样的容器是deque和lis ...
- 【BZOJ】1862: [Zjoi2006]GameZ游戏排名系统 & 1056: [HAOI2008]排名系统(treap+非常小心)
http://www.lydsy.com/JudgeOnline/problem.php?id=1862 http://www.lydsy.com/JudgeOnline/problem.php?id ...
- POJ 1625 Censored!(大数+DP)
题目链接 这题,真心木啥意思,就是数据里貌似字符有负数,注意gets读入.. #include <iostream> #include <cstring> #include & ...
- BZOJ4143 [AMPPZ2014]The Lawyer
Description Byteasar要制订m天的会议计划,一共有n场会议,第i场会议开始于第d[i]天的第a[i]秒,结束于第d[i]天的第b[i]秒. 对于每一天,请找出这一天的两场会议i,j, ...
- asp.net 微信企业号办公系统-流程设计--流程步骤设置-策略设置
策略设置包括当前步骤的流转方式,处理人员,退回策略等设置. 流转类型:当前步骤后面有多个步骤时,此类型选择可以决定后续步骤的发送方式. 1.系统控制:由系统根据您在线上设置的流转条件来判断该发送到哪一 ...