MongoDB学习笔记

2019-04-21  本文已影响0人  darren573

MongoDB只能插入字典

MongoDB插入数据

更新数据

只更改当前一个字段

删除数据

查找数据库

比较运算符

范围运算符

db.stu.find({age:{$in:[16,18,20,23]}})查询年龄为16,18,20,23数据

逻辑运算符

and db.stu.find({age:{%gte:18},gender:true})查询年龄大于或等于18,并且性别为true的学生

or  db.stu.find({$or:[{age:{$gt:18},gender:false}]})查询年龄大于18,或性别为false的学生
db.stu.find({$or:[{age:{$gt:18},gender:false}]})   

limit()和skip()

同时使用

索引

排序

投影

消除重复

数据的备份与恢复

数据恢复

聚合

常用管道

表达式

获得性别

db.stu.aggregate({$group:{_id:"$gender"}})获得不同性别的人数
db.stu.aggergate({$group:{_id:"$gender",count:{$sum:1}}})按照gender进行分组,获取不同组数据的个数和平均年龄
db.stu.aggregrate({$group:{_id:"$gender",count:{$sum:1},age:{$avg:"$age"}}})求学生总人数、平均年龄
db.stu.aggregrate({$group:{_id:null,count:{$sum:1},avg_age:{$avg:"$age"}}})
- $group 对应的字典中的有几个键,结果就有几个键
- 分组依据需要放到_id后面
- 取不同的字段的值需要使用$gender,$age

使用$project实现修改输入文档的结构

{$project:{gender:"$_id",count:"$count",avg_age:"$avg_age",_id:0}})

$match:用于过滤数据,只输出符合条件的文档

    {$match:{age:{$gt:20}}},
    {$group:{_id:"$gender",count:{$sum:1}}},
    {$project:{_id:0,gender:"$_id",count:1}}
)

统计出每个country/province下的userid的数量,(同一个userid只统计一次)

{"country":"china","province":"sh","userid":"b"}
{"country":"china","province":"sh","userid":"a"}
{"country":"uk","province":"sh","userid":"c"}
{"country":"china","province":"bj","userid":"da"}
{"country":"china","province":"bj","userid":"fa"}
db.darren.aggregate(
{$group:{_id:{country:"$country",province:"$province",userid:"$userid"}}},
{$group:{_id:{country:"$_id.country",province:"$_id.province"},count:{ $sum:1}}},
{$project:{counrty:"$_id.country",province:"$_id.province",_id:0}}
) 
上一篇 下一篇

猜你喜欢

热点阅读