查询语句,关键字时find
//查询集合内的所有文档
db.集合名.find()
去重
?db.student.distinct("age")
查询指定文档内的内容,可以用0=false,1=true
db.student.find({筛选条件},{需要显示的字段})
db.student.find({},{"_id":false})
db.student.find({"age":10})
db.student.find({"age":10},{"name":true})
db.student.find({"age":10},{"name":1,"_id":0})
例子1:
?
创建一个集合并插入数据
_id,name,age,color
//创建集合
use huluwa
//往集合中插入数据
db.huluwa.insert([
{"name":"大娃","age":1,"color":"red"},
{"name":"二娃","age":1,"color":"orange"},
{"name":"三娃","age":5,"color":"yellow"},
{"name":"四娃","age":5,"color":"green"},
{"name":"五娃","age":7,"color":"cyan"}
])
//查出年龄为1的颜色
db.huluwa.find({"age":5},{"color":1})
//查出颜色为红和黄的信息
db.huluwa.find({"color":{$in:["red","yellow"]}})
db.huluwa.find({$or:[{"color":"red"},{"color":"yellow"}]})
//查询年龄为5,并且颜色为黄的名字
db.huluwa.find({"age":5,"color":"yellow"},{"name":1})
//大于>:$get,小于<:$lt,大于等于>=$gte,小于等于<=:lte,不等于!=:$ne
//查询年龄大于5岁
db.huluwa.find({"age":{'$gt':5}})
//年龄小于3岁
db.huluwa.find({"age":{'$lt':3}}
//年龄大于等于5岁的葫芦娃信息
db.huluwa.find({"age":{"$gte":5}})
//年龄小于等于1岁的葫芦娃信息
db.huluwa.find({"age":{"$lte":1}})
//年龄不等于5岁的葫芦娃信息
db.huluwa.find({"age":{"$ne":5}})
//5≤age≤9岁的葫芦娃信息
db.huluwa.find({"age":{"$gte":5,"$lte":9}})
?
?例子2:
插入奥特曼数据,_id,name:(佐菲、杰克、艾斯、赛文、泰罗、雷欧、迪迦、梦比优斯)、
age(1000、9800、20000、4000、9999、8888、6666、77777)
//创建aotu集合
use aotu
//往集合中插入数据
db.aotu.insert([
{"_id":1,"name":"佐菲","age":1000},
{"_id":2,"name":"杰克","age":9800},
{"_id":3,"name":"艾斯","age":20000},
{"_id":4,"name":"赛文","age":4000},
{"_id":5,"name":"泰罗","age":9999},
{"_id":6,"name":"雷欧","age":8888},
{"_id":7,"name":"迪迦","age":6666},
{"_id":8,"name":"梦比优斯","age":77777},
])
//查询年龄大于8000岁的奥特曼名字
db.aotu.find({"age":{"$gt":8000}},{"name":1,"_id":0})
//查询年龄小于60000岁的奥特曼信息
db.aotu.find({"age":{"$lt":60000}})
//查询年龄大于等于4000岁的奥特曼名字
db.aotu.find({"age":{"$gte":4000}})
//查询年龄小于等于70000岁的奥特曼名字
db.aotu.find({"age":{"$lte":70000}})
//查询10000<age>77777岁的奥特曼信息
db.aotu.find({"age":{"$gt":10000,"$lt":77777}})
?
count
//查询返回结果中文档的数量
db.aotu.find().count()
//查询大于60000岁的人数
db.aotu.find({"age":{"$gt":60000}}).count()
limit、skip
//查询返回结果的指定条数limit()
db.aotu.find().limit(4)
//指定跳过的文档条数skip()
//查询从四条开始的2条数据
db.aotu.find().limit(3).skip(3)
?
排序sort
//对所有文档进行排序sort()
//升序1
db.aotu.find().sort({"age":1})
//降序-1
db.aotu.find().sort({"_id":-1})
//查询年龄最大的
db.aotu.find({},{"name":1,"_id":0}).sort({"age":-1}).limit(1)
//查询年龄最小的
db.aotu.find({},{"name":1}).sort({"age":1}).limit(1)
?
运算符
//$group:分组的条件
//_id:表示分组的字段
//年龄总和:表示结果的字段名
//$sum:求和表达式
//$age:代表要求和的字段名
db.aotu.aggregate([{'$group':{"_id":1,"年龄总和":{"$sum":"$age"}}}])
//最大值:$max
db.aotu.aggregate([{"$group":{"_id":1,"最大值":{'$max':"$age"}}}])
//最小值:$min
db.aotu.aggregate([{"$group":{"_id":1,"最小值":{"$min":"$age"}}}])
//平均值:$avg
db.aotu.aggregate([{"$group":{"_id":1,"平均数":{"$avg":"$age"}}}])
模糊查询
//返回name字段中包含‘斯’的文档数据
db.aotu.find({"name":/斯/})
//返回name字段中以‘梦’开头的文档数据
db.aotu.find({"name":/^梦/})
?
|