mongo二2018-06-29

2018-06-28  本文已影响0人  清清子衿木子水心

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(“去重域名称”, {条件})

上一篇下一篇

猜你喜欢

热点阅读