首页 > Linux操作系统 > Linux操作系统 > mongodb常用维护命令
1.客户端常用命令
#mongo
>help //列出帮助
>db.help() //db级别的帮助
>db.mycollection.help() //collection 级别的帮助
常用命令:
>show dbs //show database names
>show collections //show collections in current database
>use
>db.foo.find() //list objects in collection foo
>db.foo.find({a:1}) //list objects in foo where a == 1
>db.createCollection(name, { size : ..., capped : ..., max : ... } ) //创建collection
>db.dropDatabase() //删除库
>db.collection.count() //统计colleciton的数量
>db.collection.drop() //删除此colleciton
>db.foo.find().count //某个数据的数量
>db.collection.find(...).limit(n)
MongoDB与MySQL的对应关系如下表所示:
|
MySQL |
MongoDB |
说明 |
| mysqld | mongod | 服务器守护进程 |
| mysql | mongo | 客户端工具 |
| mysqldump | mongodump | 逻辑备份工具 |
| mysql | mongorestore | 逻辑恢复工具 |
| db.repairDatabase() | 修复数据库 | |
| mysqldump | mongoexport | 数据导出工具 |
| source | mongoimport | 数据导入工具 |
| grant * privileges on *.* to … | Db.addUser()
Db.auth() |
新建用户并权限 |
| show databases | show dbs | 显示库列表 |
| Show tables | Show collections | 显示表列表 |
| Show slave status | Rs.status | 查询主从状态 |
| Create table users(a int, b int) | db.createCollection("mycoll", {capped:true,
size:100000}) 另:可隐式创建表。 |
创建表 |
| Create INDEX idxname ON users(name) | db.users.ensureIndex({name:1}) | 创建索引 |
| Create INDEX idxname ON users(name,ts DESC) | db.users.ensureIndex({name:1,ts:-1}) | 创建索引 |
| Insert into users values(1, 1) | db.users.insert({a:1, b:1}) | 插入记录 |
| Select a, b from users | db.users.find({},{a:1, b:1}) | 查询表 |
| Select * from users | db.users.find() | 查询表 |
| Select * from users where age=33 | db.users.find({age:33}) | 条件查询 |
| Select a, b from users where age=33 | db.users.find({age:33},{a:1, b:1}) | 条件查询 |
| select * from users where age<33 | db.users.find({'age':{$lt:33}}) | 条件查询 |
| select * from users where age>33 and age<=40 | db.users.find({'age':{$gt:33,$lte:40}}) | 条件查询 |
| select * from users where a=1 and b='q' | db.users.find({a:1,b:'q'}) | 条件查询 |
| select * from users where a=1 or b=2 | db.users.find( { $or : [ { a : 1 } , { b : 2 } ] } ) | 条件查询 |
| select * from users limit 1 | db.users.findOne() | 条件查询 |
| select * from users where name like "%Joe%" | db.users.find({name:/Joe/}) | 模糊查询 |
| select * from users where name like "Joe%" | db.users.find({name:/^Joe/}) | 模糊查询 |
| select count(1) from users | Db.users.count() | 获取表记录数 |
| select count(1) from users where age>30 | db.users.find({age: {'$gt': 30}}).count() | 获取表记录数 |
| select DISTINCT last_name from users | db.users.distinct('last_name') | 去掉重复值 |
| select * from users ORDER BY name | db.users.find().sort({name:-1}) | 排序 |
| select * from users ORDER BY name DESC | db.users.find().sort({name:-1}) | 排序 |
| EXPLAIN select * from users where z=3 | db.users.find({z:3}).explain() | 获取存储路径 |
| update users set a=1 where b='q' | db.users.update({b:'q'}, {$set:{a:1}}, false, true) | 更新记录 |
| update users set a=a+2 where b='q' | db.users.update({b:'q'}, {$inc:{a:2}}, false, true) | 更新记录 |
| delete from users where z="abc" | db.users.remove({z:'abc'}) | 删除记录 |
| db. users.remove() | 删除所有的记录 | |
| drop database IF EXISTS test; | use test
db.dropDatabase() |
删除数据库 |
| drop table IF EXISTS test; | db.mytable.drop() | 删除表/collection |
| db.addUser(‘test’, ’test’) | 添加用户
readOnly-->false | |
| db.addUser(‘test’, ’test’, true) | 添加用户
readOnly-->true | |
| db.addUser("test","test222") | 更改密码 | |
| db.system.users.remove({user:"test"})
或者db.removeUser('test') |
删除用户 | |
| use admin | 超级用户 | |
| db.auth(‘test’, ‘test’) | 用户授权 | |
| db.system.users.find() | 查看用户列表 | |
| show users | 查看所有用户 | |
| db.printCollectionStats() | 查看各collection的状态 | |
| db.printReplicationInfo() | 查看主从复制状态 | |
| show profile | 查看profiling | |
| db.copyDatabase('mail_addr','mail_addr_tmp') | 拷贝数据库 | |
| db.users.dataSize() | 查看collection数据的大小 | |
| db. users.totalIndexSize() | 查询索引的大小 |
详细的请看help帮助
2.备份及恢复 (mongodump/mongorestore)
备份:
#./mongodump --help
#./mongodump -d test -c test_collection_2 -o /opt/mongodb_backup/ //备份test 库中的 test_collection_2
恢复:
#./mongorestore --help
#./mongorestore -d test -c test_collection_2 --drop /opt/mongodb_backup/test/test_collection_2.bson
//恢复test_collection_2
3.导出及导入(mongoexport/mongoimport)
导出:
#./mongoexport --help
#./mongoimport -d test -c test_collection_2 -o /opt/mongodb_backup/test/test_collection_2.json //导出
导入:
#./mongoimport --help
#./mongoimport -d test -c test_collection_2 --drop --file /opt/mongodb_backup/test/test_collection_2.json //导入
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17066567/viewspace-749932/ ,如需转载,请注明出处,否则将追究法律责任。