mongodb数据库 linux端常用操作
比较运算符
⼩于:$lt (less than) ⼩于等于:$lte (less than equal) ⼤于:$gt (greater than) ⼤于等于:$gte 不等于:$ne
db.stu.insert([{“name” : “郭靖”, “hometown” : “蒙古”, “age” : 20, “gender” : true },{“name” : “⻩蓉”, “hometown” : “桃花岛”, “age” : 18, “gender” : false },{“name” : “华筝”, “hometown” : “蒙古”, “age” : 18, “gender” : false },{“name” : “⻩药师”, “hometown” : “桃花岛”, “age” : 40, “gender” : true },{“name” : “段誉”, “hometown” : “⼤理”, “age” : 16, “gender” : true },{“name” : “段王爷”, “hometown” : “⼤理”, “age” : 45, “gender” : true },{“name” : “洪七公”, “hometown” : “华⼭”, “age” : 18, “gender” : true }])
逻辑运算符
- and :{name:"",age:""} 此时name和age表示and的逻辑
- or : {$or:[{条件1},{条件2}]} 条件1和2之前属于or关系
范围运算符
$in :在范围内 {age:{$in:[19,20,30]}}
- $nin :不在范围内
正则
db.products.insert([{ "_id" : 100, "sku" : "abc123", "description" : "Single line description." },{ "_id" : 101, "sku" : "abc789", "description" : "First line\nSecond line" },{ "_id" : 102, "sku" : "xyz456", "description" : "Many spaces before line" },{ "_id" : 103, "sku" : "xyz789", "description" : "Multiple\nline description" }])
投影
指定数据内容的字段
db.stu.find({条件},{name:1,_id:0})
返回数据中只会包含name字段,
_id不会显示
mongodb的分组
- 分组
db.stu.aggregate( {$group:{_id:"$hometown",count:{$sum:1},total_age:{$sum:"$age"},avg_age:{$avg:"$age"}}} )
-
_id
分组的依据 -
$age
取age对应的值 -
$sum:1
把每条数据作为1进行统计,统计的是个数 -
$sum:"$age"
统计年龄对应的和 -
$group
对应的字典中的键是输出数据的键 -
不分组
db.stu.aggregate( {$group:{_id:null,count:{$sum:1}}} )
统计整个文档
- 数据透视
把不同行的数据,放到一行来展示
db.stu.aggregate( {$group:{_id:"$gender",name:{$push:"$name"},hometown:{$push:"$hometown"}}} )
- 按照过个字段进行分组
按照多个字端进行分组,_id
的值是一个json
db.stu.aggregate( {$group:{_id:{hometown:"$hometown",gender:"$gender"},count:{$sum:1}}} )
多字段分组练习
当某个键对应的值是字典的时候,取其中的值需要使用.操作,
$_id.country表示取到
_id这个字典下的country的键对应的值
db.tv3.aggregate( {$group:{_id:{country:"$country",province:"$province",userid:"$userid"}}}, {$group:{_id:{country:"$_id.country",province:"$_id.province"},count:{$sum:1}}} )
$project的使用
db.stu.aggregate( {$group:{_id:"$hometown",count:{$sum:1}}}, {$project:{_id:0,sum:"$count",hometown:"$_id"}} )
db.tv3.aggregate( {$group:{_id:{country:"$country",province:"$province",userid:"$userid"}}}, {$group:{_id:{country:"$_id.country",province:"$_id.province"},count:{$sum:1}}}, {$project:{country:"$_id.country",province:"$_id.province",counter:"$count",_id:0}} )
$skip $limit $sort
db.stu.aggregate( {$group:{_id:"$hometown",count:{$sum:1}}}, {$sort:{count:-1}}, {$skip:1}, {$limit:2} )
douban数据练习
db.tv1.aggregate( {$project:{title:1,_id:0,count:"$rating.count",rate:"$rating.value",country:"$tv_category"}}, {$match:{rate:{$gte:8}}}, {$group:{_id:"$country",count:{$sum:1}}} )
abc abd a
a abc abd bcde
db.stu.insert([{ “country” : “china”, “province” : “sh”, “userid” : “a” },{ “country” : “china”, “province” : “sh”, “userid” : “b” },{ “country” : “china”, “province” : “sh”, “userid” : “a” },{ “country” : “china”, “province” : “sh”, “userid” : “c” },{ “country” : “china”, “province” : “bj”, “userid” : “da” },{“country” : “china”, “province” : “bj”, “userid” : “fa” }])
db.stu1.aggregate({KaTeX parse error: Expected '}', got 'EOF' at end of input: …{_id:{country:'country’,province:‘province′,userid:′province',userid:'province′,userid:′userid’}}})
- linux 常用操作
- Linux中常用操作命令
- linux unix 基本常用命令操作
- Linux中常用操作命令
- linux操作mysql数据库常用简单步骤
- Linux常用命令_(文件操作)
- Linux 常用操作及vim编辑
- Linux常用文件操作命令
- Linux常用命令(三)文件操作--文件备份、压缩、定位、查找、阅读
- Linux常用操作命令
- windows下使用 Secure Shell Client工具操作linux常用命令
- linux常用操作命令整理
- Linux常用操作命令(持续更新)
- Linux-Vim常用操作
- Linux常用命令(六)网络操作命令
- linux常用文件操作命令备忘
- Linux中常用的查看系统信息的操作指令
- Linux-温故而知新-常用操作
- Linux常用文件操作命令
- 【Linux】Linux中常用操作命令