> 工作中会用到的mongodb数据库相关命令总结
连接mongodb
mongo 远程主机ip或DNS:MongoDB端口号/数据库名 -u user -p passwordmongo 192.168.1.100:27017/test -u user -p password若在安装mongo的服务器上访问本地mongo,可直接执行 mongo基础操作命令
show dbs # 显示数据库列表 show collections # 显示当前数据库中的集合(类似关系数据库中的表) show users # 显示用户use <db_name> # 切换当前数据库,这和MS-SQL里面的意思一样 db.help() # 显示数据库操作命令,里面有很多的命令 db.col.help() # 显示集合操作命令,同样有很多的命令,col指的是当前数据库下,一个叫col的集合(表) db.col.find() #对于当前数据库中的col集合进行数据查找(由于没有条件,会列出所有数据) db.col.find( { a : 1 } ) # 对于当前数据库中的col集合进行查找,条件是数据中有一个属性叫a,且a的值为1db.col.find({a:1},{column:0}) # 后面的大括号代表返回字段过滤,column为列名,0代表只去掉该字段,1代表只保留该字段新增数据
db.foo.insert({ "name" : "azhu", "sex": 2, "age": 25}) 删除数据
# 删除指定条件的数据db.foo.remove({"userId" : "testcustomer"})# 清空表db.foo.remove({})# 删除表db.foo.drop()# 删除数据库db.dropDatabase()# 注意,删除操作是永久性的,不可恢复的,所以删除前应该使用find确认删除数据# 另,mongodb删除集合后磁盘空间不释放,用db.repairDatabase()去修复才能释放 。但是在修复的过程中如果出现了非正常的mongodb的挂掉,再次启动时启动不了的,需要先修复才可以,可以利用./mongod --repair --dbpath=/data/mongo/,如果你是把数据库单独的放在一个文件夹中指定dbpath时就指向要修复的数据库就可以,修复可能要花费很长的时间,在使用db.repairDatabase()去修复时一定要停掉读写,并且mongodb要有备机才可以,不然千万不要随便使用db.repairDatabase()来修复数据库,切记 。更新数据
db.foo.update({"userId" : "1234"},{'$set':{"usermail" : "123456@163.com"}})查询数据
$gt 大于 >$lt 小于 <$gte 大于等于 >=$lte 小于等于 <=db.col.find({age:{$gt:18}}); # 年龄大于18岁# SQL -> SELECT * FROM col WHERE age > 18$ne 不等于db.col.find({age: {$ne: 18}}).pretty(); # 年龄不等于18岁# SQL -> select * from col where age != 18$in$nindb.col.find({name: {$in:[2, 3, 4]}}).pretty()db.col.find({name: {$nin:[2, 3, 4, 5]}}).pretty()$existsdb.col.find({title:{$exists:true}}); # 如果记录中有包含title属性的全部返回db.col.find({title:{$exists:false}}); # 如果记录中有包含title属性的全部不返回,不包含title属性的全部返回db.collection.find({name:/acme.*corp/i}); # 后面的i的意思是区分大小写$ 操作符会限制 array 类型数据的返回结果,使其仅返回第一个满足条件的元素db.storage.find( { 'items.category': {$eq: 'food' } }, { 'items.$': 1 })$elemMatch 和 $ 的区别在于,$ 使用的是数据查询条件作为来映射(或者说过滤)array 中的数据,而 $elemMatch 需要指定单独的条件(可以指定多个条件)db.storage.find( // 对 `items` 的过滤条件不需要写在查询条件中 { '_id': "alpha" }, { 'items': { '$elemMatch': { 'category': 'food' } } })$filter 可以简单理解为对数据的批处理(分组、转换、统计等)db.storage.aggregate( { $project: { "items": { $filter: { input: "$items", as: "item", cond: {$eq: [ '$$item.category', 'food' ] } } } } })

文章插图
【mongodb数据库命令行总结】
推荐阅读
- 分享mysql数据库一款杀会话利器--pt-kill
- ajax——请求本地数据库
- 一文看懂mysql数据库备份恢复
- 分享一款mysql数据库数据文件IO监控神器--pt-ioprofile
- 数据库远程连接工具 linux安装Mysql5.7和安装navicat介绍
- 如何删除MySQL数据库中表的重复记录且仅保留其中一条?
- 详解MySQL查看数据库表容量大小的方法总结
- 快速进行数据库管理的Mac软件
- 如何查看Oracle数据库物理读、逻辑读前10的sql?
- 微服务架构下,Mysql读写分离后,数据库CPU飙升卡壳问题解析
