Mongodb
数据查询,结果结果可以使用类似于表的结构去看,也可以使用BSON的格式去看
- 数据查询
- 查询单条
db.learn.find({‘name’:’my’}) - 查询所有
db.collectionname.find( query, projection )
- 查询单条
query 查询条件,也是一个BSON对象样式{ key:value}
projection 获取的最终字段,也是一个BSON对象 { key: value} ,value 是 0 和 1,不显示某一字段,1代表某一字段
0 标识某一字段,代表不显示某一字段,如果只有0出现,意味着其余字段都显示
1 标识某一字段,代表显示某一字段,如果只有1出现,意味着只显示标识的字段,_id会显示
查询条件的value值,支持正则表达式,实际上实现的就是关系型数据库中的模糊查询,类似于like
query的值
等于 {key:value}
小于 {key:{$lt:value}}
小于等于 {key:{$lte:value}}
大于 {key:{$gt:value}}
大于等于 {key:{$gte:value}}
不等于 {key:{$ne:value}}
1, 多条件 与 ( and )使用,就是find(query) 中包含多个key-value
db.learn.find({'name':'lzy','age':18})
2, 多条件 或 ( or ) 使用 ,就是查询中 使用\$or ,$or对应的是列表,列表中方的是query
db.learn.find({$or:[{'age':18},{'age':34}]})
3, 排序 对结果集进行sort( con ), con也是 BSON的key-value,key就是排序字段,value 1和-1,1代表升序,-1代表降序,排序的时候注意使用数值型或时间型
db.learn.find().sort({'age':1})
4, 限制结果集,使用limit( num ),限制结果集为多少条,最多为 num 条
db.learn.find().limit(2)
5, 跳过指定结果数,使用skip( num )跳过结果集多少条
db.learn.find().skip(4)
6, 当同时使用 sort,limit,skip时,不管顺序先后,都是按照 sort,skip,limit进行执行的
db.learn.find().limit(2).sort({'age':1}).skip(1)
7, 聚合函数 aggregate() , [ { $group : { "_id" : null , "age_avg" : {$avg : "$age" } } } ] ,求这一组的平均年龄,avg,sum,max,min,fisrt,last
使用小窍门,key-value,value只要不是具体的,直接的值,就需要冒号之后使用 大括号 { }
db.learn.aggregate([{$group:{'_id':null,age_sum:{$sum}])
- 数据删除 db.collectionname.deleteOne( query )
- 删除一条数据,第一条匹配到的数据
db.learn.deleteOne({‘name’:’aa’})
- 删除一条数据,第一条匹配到的数据
- 数据删除 db.collectionname.deleteMany( query )
- 删除所有匹配数据,query 就是一个BSON对象, { key : value }
db.learn.deleteMany({‘name’:’aa’})
- 删除所有匹配数据,query 就是一个BSON对象, { key : value }
- 数据删除 remove移除数据,db.collectionname.remove(query,{ justOne:false } )
- 删除数据,默认删除所有满足条件的数据
- 也可以配置参数,第二个BSON可以配置 justOne: true
db.person.remove({‘name’:’ws’})
只删除一个
db.person.remove({‘name’:’ws’},{justOne:true})
- 数据更新 db.collectionname.update( query,update,{ 配置参数 } )
- query 更新条件,key-value
- update, 需要使用{$set : { key : value}}
- 配置参数,默认只变更匹配到的第一条数据,如果想改变多条,需要使用 { multi : true}
db.person.update({'name':'ws'},{$set:{'age':999}})
db.person.update({'name':'lzy'},{$set:{'age':999}},{multi:true})