mongodb的macbook安装
mongoDB install
sudo apt-get install -y mongodb-org
mongo db的基本操作:
使用数据库:
use dbname
创建集合:
db.createCollection("stu")
删除集合:
db.stu.drop()
插入:
db.stu.insert({name:"qianer", age:22, gender:"male"})
db.stu.insert({name:"zhangsi", age:23, gender:"female"})
db.stu.insert({name:"wangwu", age:23, gender:"male"})
db.stu.insert({name:"lisi", age:22, gender:"male"})
db.stu.insert({name:"qianer", age:22, gender:"male"})
db.stu.insert({name:"chenba", age:28, gender:"male"})
db.stu.insert({name:"chenba", age:28, gender:"male"})
替换:
db.collection.update({name:"lisi"}, {name:"wangwu"})
更新:
db.collection.update({name:"wangwu"}, {$set:{name:"qianyi"}})
指定capped和size后,更新的字段个数和长度都应该和原来一样。不能删除。
db.stu.update({name:'hr'},{name:'mnc'}) 更新一条
db.stu.update({name:'hr'},{$set:{name:'hys'}}) 更新一条
db.stu.update({},{$set:{gender:0}},{multi:true}) 更新全部
删除:
db.collection.remove({_id:1000})
查找:
db.collection.find({_id:1001})
高级操作:
查找所有:
db.collection.find()
查找一个:
db.collection.findOne({_id:1001})
过滤:
db.collection.find().pretty()
运算符操作:
小于/小于等于/不等于/大于/大于等于:
db.stu.find({age: {$lt:20}}) 小于
db.stu.find({age: {$lte:20}}) # 小于等于
db.stu.find({age: {$ne:20}}) # 不等于
db.stu.find({age: {$gt:20}}) # 大于
db.stu.find({age: {$gte:20}}) # 大于
在集合中:
db.collection({age:$in:[16, 18, 19]})
and运算:,分割
db.stu.find({age: {$ne:20}, gender:‘male’})
or运算
db.stu.find($or:[{age: {$ne:20}, gender:'male'}, {age:20}])
支持正则表达式:
//包围 正则表达式即可。例如
find({sku:"/^1234/"})查找sku 1234开头的
find({sdk:"/789$/"})查找sku 789结尾的。
支持函数:函数this返回this表达式。
支持投影:指定显示某些字段,隐藏某些字段
跳过指定个,限定数量
skip(n).limit(count)
排序:.sort({age:1}) 升序
降序:.sort({age:-1})
统计:
db.collection.find(condition).count()
db.collection.count(condition)
db.xxx.distinct("field")
mongodb聚合
聚合操作的分组和计数如何使用,如何修改输出数据的样式,
- 分组
db.collection.aggregate({$group:{_id:"$age",count:{$sum:1}}})
$project
db.collection.aggregate( {$group:{_id:"$age",count:{$sum:1}}}, {$project:{_id:0,age:"$_id",count:1}} )
聚合操作如何匹配内容
$match
db.collection.aggregate( {$match:{gender:true}, {$group:{_id:"$age",count:{$sum:1}}}, {$project:{_id:0,age:"$_id",count:1}} )
unwind
db.stu.insert({"username":"Alex","tags": ['C#','Java','C++']})
db.t1.find({name:'ironman10000'}).explain('executionStats')
一个小技巧:多字段分组-统计
数据备份和恢复
mongodump -h 127.0.0.1:27017 -d test1 -o ~/Desktop/test1back
mongodump -h 127.0.0.1:27017 -d test1 -o ~/Desktop/test1back
喜欢本文章,点个赞再走吧。