mongodb 常用命令

启动数据库:
mongod --dbpath="数据库存目录"
安全关闭数据库:
mongo admin --eval "db.shutdownServer()"
 
整库备份:
mongodump -h dbhost -d dbname -o dbdirectory
-h:MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
-d:需要备份的数据库实例,例如:test
-o:备份的数据存放位置,例如:c:\data\dump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。

整库恢复:
mongorestore -h dbhost -d dbname –directoryperdb dbdirectory
-h:MongoDB所在服务器地址
-d:需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
–directoryperdb:备份数据所在位置,例如:c:\data\dump\test,这里为什么要多加一个test,而不是备份o时候的dump,读者自己查看提示吧!
–drop:恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦!

单个collection备份:
mongoexport -h dbhost -d dbname -c collectionname -f collectionKey -o dbdirectory
-h: MongoDB所在服务器地址
-d: 需要恢复的数据库实例
-c: 需要恢复的集合
-f: 需要导出的字段(省略为所有字段)
-o: 表示导出的文件名

单个collection恢复:
mongoimport -d dbhost -c collectionname –type csv –headerline –file
-type: 指明要导入的文件格式
-headerline: 批明不导入第一行,因为第一行是列名
-file: 指明要导入的文件路径


超级用户相关:

  1. use admin
  2. #增加或修改用户密码
  3. db.addUser(ixigua,'pwd')
  4. #查看用户列表
  5. db.system.users.find()
  6. #用户认证
  7. db.auth(ixigua,'pwd')
  8. #删除用户
  9. db.removeUser('mongodb')
  10. #查看所有用户
  11. show users
  12. #查看所有数据库
  13. show dbs
  14. #查看所有的collection
  15. show collections
  16. #查看各collection的状态
  17. db.printCollectionStats()
  18. #查看主从复制状态
  19. db.printReplicationInfo()
  20. #修复数据库
  21. db.repairDatabase()
  22. #设置记录profiling,0=off 1=slow 2=all
  23. db.setProfilingLevel(1)
  24. #查看profiling
  25. show profile
  26. #拷贝数据库
  27. db.copyDatabase('mail_addr','mail_addr_tmp')
  28. #删除collection
  29. db.mail_addr.drop()
  30. #删除当前的数据库
  31. db.dropDatabase()
  • 客户端连接
  1. /usr/local/mongodb/bin/mongo 8.8.88/ixigualib -u ixigua -p 'pwd'
  • 增删改
  1. #存储嵌套的对象
  2. db.foo.save({'name':'ysz','address':{'city':'beijing','post':100096},'phone':[138,139]})
  3. #存储数组对象
  4. db.user_addr.save({'Uid':'[email protected]','Al':['[email protected]','[email protected]']})
  5. #根据query条件修改,如果不存在则插入,允许修改多条记录
  6. db.foo.update({'yy':5},{'$set':{'xx':2}},upsert=true,multi=true)
  7. #删除yy=5的记录
  8. db.foo.remove({'yy':5})
  9. #删除所有的记录
  10. db.foo.remove()
  • 索引
  1. #增加索引:1(ascending),-1(descending)
  2. db.things.ensureIndex({firstname: 1, lastname: 1}, {unique: true});
  3. #索引子对象
  4. db.user_addr.ensureIndex({'Al.Em': 1})
  5. #查看索引信息
  6. db.deliver_status.getIndexes()
  7. db.deliver_status.getIndexKeys()
  8. #根据索引名删除索引
  9. db.user_addr.dropIndex('Al.Em_1')
  • 查询
  1. #查找所有
  2. db.foo.find()
  3. #查找一条记录
  4. db.foo.findOne()
  5. #根据条件检索10条记录
  6. db.foo.find({'msg':'Hello 1'}).limit(10)
  7. #sort排序
  8. db.deliver_status.find({'From':'[email protected]'}).sort({'Dt',-1})
  9. db.deliver_status.find().sort({'Ct':-1}).limit(1)
  10. #count操作
  11. db.user_addr.count()
  12. #distinct操作
  13. db.foo.distinct('msg')
  14. #>操作
  15. db.foo.find({"timestamp": {"$gte" : 2}})
  16. #子对象的查找
  17. db.foo.find({'address.city':'beijing'})
  • 管理
  1. #查看collection数据的大小
  2. db.deliver_status.dataSize()
  3. #查看colleciont状态
  4. db.deliver_status.stats()
  5. #查询所有索引的大小
  6. db.deliver_status.totalIndexSize()

你可能感兴趣的:(数据库,node.js,mongdb)