MongoDB命令模式下的条件过滤总结

时间:2022-09-04 21:41:39

db.tb1.find() //查询全部,用it查看下一页。
db.tb1.find({"age":1}) //查询年龄==1的记录
db.tb1.find({},{"age":1}) //查询年龄==1的记录
db.tb1.find({"name":{$all:["a","b"]}}) //查询name含有a,b的记录
db.tb1.find({"name":{$exists:true}}) //查询存在name字段的记录。
db.tb1.find({"age":{$nin:[12,14]}}) //查询age不含12,14值的记录。
db.tb1.find({name) //查询name含a字母的记录

.......
总结如下:
查询格式如下:Db.collection.find({“field”: { operator: val}})
field为colleciton的字段名,operator为操作符,val为比较值。
operator有如下:
$gt,$gte,$lt,$lte: val  v1.
$all :都有, val  {v1,v2,v3...}
$exists:存在, val  true/false;
$ne :不等于, val  v1
$mod: 取模。 Val  [v1取模数,v2余数]
$in :包含某值,val  [v1,v2,v3...]
$nin :不包含某值,val  [v1,v2,v3...]
$size: 指定长度数组, val  v1
$regex: 正则查询,val  v1 :通配符查询:/s/ ,但是s/,/是这样语法错误。
Javascript查询: 编写function,然后查询。

>Find(条件).count() / limit(v) /skip(v) /sort({“field”: 1/-1},{“field2”: 1/-1}...)
分页查询,通过limit,skip,sort组合进行分页查询。
如每页X条,第N页
> Find(条件).SKIP * X).Limit(X).SORT.
distinct: 查询指定键的不同值。db.runCommand({"distinct":”集合名","key":"字段名"})
group: 较复杂。