mongodb(4查询)

第一个参数决定要返回那些文档
db.test.find()返回所有文档
db.test.find({"age":27})
db.test.find({"username":"joe"})
db.test.find({"username":"joe","age":27})and的关系
第二参数指定想返回的键
db.test.find({},{"username":1,"email":1})   只会有username和emial和id
db.test.find({},{"_id":0,"username":1})   id被剔除
查询条件
“$lt”、"$lte"、"$gt"、"$gte"  < <= > >=
db.test.find({"age":{"$gte":18,"$lte":30}})   查询年龄在18-30的
“$ne" 不等于  
db.test.find({"username":{"$ne":"joe"}})
 
OR查询两种方式:$in :查询一个键的多个值 $or:在多个键中查询任意的给定值
db.raffle.find({"ticket_no":{"$in":[725,542,390]}})   查出所有中奖号码(725,542,390) 的全部号码
db.users.find({"user_id":{"$in":[12345,"joe"]})    
{ticket_no:{$in:[725]}}和{ticke_no:725}的效果一样的
 
$nin与in相反
 
 
$or 可以包含多个条件
 
db.raffle.find({"$or":[{"ticket_no":725},{"winner":true}]})
db.raffle,find({"$or":[{"ticket_no":{"$in":[725,542,390]}},{"winner":true}]})
 
$not 是元条件句,可以在任何其他条件之上   例:
db.users.find({"id_num":{"$mod":[5,1]}})   取5的余数是1的,1.6.11.16
db.users.find({"id_num":{"$not":{"$mod":[5,1]}}})  取没有匹配到的
 
 
条件语句是内层文档的键,而修改器则是外层文档的键
查询null语句
db.c.find({"z":{"$in":[null],"$exists":true}})
 
mongdb支持js的所有正则表达式
db.users.find({"name":/joe/i})
4.33查询数组
1、$all   既要有"apple"又有“banana”的文档
db.food.find({fruit:{$all:["apple"],"banana"}})
2、$size  指定长度的数组  
3、$slice 是find的第二个参数,指定需要返回的键,返回前10.返回后10返回10-20之间
db.blog.posts.findOne(criteria,{"comments":{"$slice":10}})
db.blog.posts.findOne(criteria,{"comments":{"$slice":-10}})
db.blog.posts.findOne(criteria,{"comments":{"$slice":[10-20 ]}})
db.blog.posts.findOne(criteria,{"comments":{"$slice":-1}})返回最后一条评论
 
4、返回一个匹配的数组元素
 
如果知道元素的小标用$       db.blog.posts.find({"coments.name":"bob"},{"comments.$":1})
 
5、数组和范围查询的相互作用
 
6.$where 可以使用任意的javascript
7.服务器端使用javascript脚本使用作用域
8.游标  
9.limit  限制返回数量
db.collection.find().limit(3)
10。skip和limit除去前三条剩下
11.sort 顺序
sort()接受一个参数,值代表排序的方向,-1降序1升序  
例如:一个分页搜索
db.stock.find({"desc":"mp3"}).limit(50).sort({"price":-1})
显示更多页
db.stock.find({"desc":"mp3"}).limit(50).skip(50).sort({"price":-1})
12比较顺序
最小值 null 数字 字符串 对象/文档 数组 二进制数据 对象id 布尔型 日期型 时间戳 正则表达式 最大值
 
13 高级查询选项
$maxscan $min $max $ showDiskLoc
14 获取一直结果
原文地址:https://www.cnblogs.com/chenjinxinlove/p/5513103.html