MongoDB基础语法——查询数据
基本查询
find([{文档条件}]):全集合查询
findOne([{文档条件}]):查询第一个
pretty():将查询结果格式化展示
比较运算符(关系运算符)
默认判断,无运算符
$lt:little~小于 < less than
$lte:little or equals~小于等于 <=
$gt:granter~大于 >
$gte:granter or equals~大于等于 >=
eg:db.dept.find().prettty() 将查询结果格式化展示
db.emp.find({age:{$gt:30}}) 查询年龄大于30的
db.emp.find({name:'zhangsan',age:18}) 两个条件是和的关系,都要满足才可查到(与)
逻辑运算符
逻辑与:并且运算,默认操作,无运算符
逻辑或:或者运算,$or (注意:or后面带中括号)
eg:db.emp.find({$or:[{age:{gt:30}},{name:'laowang'}]})
范围运算符
$in:判断指定条件是否包含在某个范围内
$nin:判断指定条件是否不包含在某个范围内
eg:db.emp.find({age:{in[18,20]}}) 年龄为18或者20都选择
正则条件
/reg/:普通正则表达式
$regex:指定正则表达式
eg:db.emp.find({gender:/^n/}) 性别以n开头的所有被选择
db.emp.find({name:/u$/}) 名字以u结尾的所有被选择
db.emp.find({name:{$regex:'u$'}}) 名字以u结尾的所有被选择
自定义条件
$where:通过函数自定义条件[JS函数]
指定函数中,返回boolean类型的值
this表示每个要查询的文档
eg:db.emp.find({$where:function() {return this.age>=30}})
数据查询——限制查询条数:<find>.limit(count)
数据查询——跳过记录行数:<find>.skip(num)
数据查询——投影:查询指定的域:find({}, {投影字段:1/0})
eg:db.emp.find().limit(2) 查询2条
db.emp.find().skip(2).limit(2) 跳过2条之后,查2条
db.find().({},{name:1}) 显示名字和id(第一个{}表示显示所有,第二个表示显示所有name)
db.emp.find({},{name:1,_id:0}) 等于1显示,等于0则不显示
数据查询——排序
<find>.sort({字段:1/-1, ...})
eg:db.emp.find().sort({age:1}) 按年龄升序排列
db.emp.find().sort({age:1,name:-1}) 先按年龄升序排列,相同年龄的再按名字排列
数据查询——统计
<find>.count()
<find({条件})>.count()
db.<集合名称>.count({条件})
eg:db.emp.count() 统计所有
db.emp.find().count() 统计所有
db.emp.count({age:{$gt:20}}) 统计年龄大于20的所有(无find,条件写count里面)
db.emp.find({age:{$gt:20}}).count() 统计年龄大于20的所有(有find,则条件写find里面)
db.emp.find().count({age:{$gt:20}}) 有find,把条件写count里面,则统计所有
数据查询——去重
db.<集合名称>.distinct(“去重域名称”, {条件})
网友评论