mongodb的基本操作

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

喜欢本文章,点个赞再走吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值