龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > nosql开发 >

mongodb相关操作命令(2)

时间:2014-05-22 16:00来源:网络整理 作者:网络 点击:
分享到:
Mongodb的备份工具mongodump   如果想备份数据库test 如: [falcon@www.fwphp.cn  ~/mongodb/bin]$ ./mongodump --help options:  --helpproduce help message  -h [ --host ] arg  

Mongodb的备份工具mongodump
 
如果想备份数据库test 如:






[falcon@www.fwphp.cn  ~/mongodb/bin]$ ./mongodump --help options:
 --helpproduce help message
 -h [ --host ] arg        mongo host to connect to  -d [ --db ] argdatabase to use
 -c [ --collection ] arg  collection to use (some commands)  -u [ --username ] arg    username
 -p [ --password ] arg    password
 --dbpath arg   directly access mongod data files in this path,      instead of connecting to a mongod instance
 -v [ --verbose ]be more verbose (include multiple times for more
     verbosity e.g. -vvvvv)
 -o [ --out ] arg (=dump) output directory
[falcon@www.fwphp.cn  ~/mongodb/bin]$ [color=Blue]./mongodump -d test -o test/[/color] connected to: 127.0.0.1 DATABASE: testtotest/test
      test.user to test/test/user.bson      100000 objects
      test.system.indexes to test/test/system.indexes.bson      1 objects
[falcon@www.fwphp.cn  ~/mongodb/bin]$ ls
2     mongo   mongodump    mongofiles   mongorestore  mongosniff dump  mongod  mongoexport  mongoimport  mongos     test 
MongoDB的数据恢复工具mongorestore
 
查看test库中的表 > show collections system.indexes User删除user表 > db.user.drop(); True 
> show collections
System.indexes现在利用mongorestore表恢复刚才利用mongodump备份的数据 [falcon@www.fwphp.cn  ~/mongodb/bin]$ ./mongorestore --help usage: ./mongorestore [options] [directory or filename to restore from] options:
 --help        produce help message
 -h [ --host ] arg       mongo host to connect to  -d [ --db ] argdatabase to use
 -c [ --collection ] arg collection to use (some commands)  -u [ --username ] arg   username  -p [ --password ] arg   password
 --dbpath arg  directly access mongod data files in this path,     instead of connecting to a mongod instance
 -v [ --verbose ]        be more verbose (include multiple times for more     verbosity e.g. -vvvvv)






 
[falcon@www.fwphp.cn  ~/mongodb/bin]$ ./mongorestore -d test -c user test/test/user.bson connected to: 127.0.0.1 test/test/user.bson
       going into namespace [test.user] 
       100000 objectsUser表中的10w条记录已经恢复 > show collections system.indexes user
> db.user.find();
{ "_id" : ObjectId("4b9c8db08ead0e3347000000"), "uid" : 1, "username" : "Falcon.C-1" } { "_id" : ObjectId("4b9c8db08ead0e3347010000"), "uid" : 2, "username" : "Falcon.C-2" } { "_id" : ObjectId("4b9c8db08ead0e3347020000"), "uid" : 3, "username" : "Falcon.C-3" } { "_id" : ObjectId("4b9c8db08ead0e3347030000"), "uid" : 4, "username" : "Falcon.C-4" } { "_id" : ObjectId("4b9c8db08ead0e3347040000"), "uid" : 5, "username" : "Falcon.C-5" } .................

 

has more 
   1. 超级用户相关: 
#增加或修改用户密码 db.addUser('admin','pwd') 
#查看用户列表 db.system.users.find() 
#用户认证
db.auth('admin','pwd') 
#删除用户
db.removeUser('mongodb') 
#查看所有用户 show users 
#查看所有数据库 show dbs 
#查看所有的collection show collections 
#查看各collection的状态 db.printCollectionStats() 
#查看主从复制状态 db.printReplicationInfo() 
#修复数据库






db.repairDatabase() 
#设置记录profiling,0=off 1=slow 2=all db.setProfilingLevel(1) 
#查看profiling show profile 
#拷贝数据库
db.copyDatabase('mail_addr','mail_addr_tmp') 
#删除collection db.mail_addr.drop() 
#删除当前的数据库 db.dropDatabase() 
   2. 客户端连接 
/usr/local/mongodb/bin/mongo user_addr -u user -p 'pwd' 
   3. 增删改 
#存储嵌套的对象
db.foo.save({'name':'ysz','address':{'city':'beijing','post':100096},'phone':[138,139]}) 
#存储数组对象
db.user_addr.save({'Uid':'yushunzhi@sohu.com','Al':['test-1@sohu.com','test-2@sohu.com']}) 
#根据query条件修改,如果不存在则插入,允许修改多条记录 db.foo.update({'yy':5},{'$set':{'xx':2}},upsert=true,multi=true) 
#删除yy=5的记录 db.foo.remove({'yy':5}) 
#删除所有的记录 db.foo.remove() 
   4. 索引 
增加索引:1(ascending),-1(descending)
db.things.ensureIndex({firstname: 1, lastname: 1}, {unique: true}); 
#索引子对象
db.user_addr.ensureIndex({'Al.Em': 1}) 
#查看索引信息
db.deliver_status.getIndexes() db.deliver_status.getIndexKeys()






 
#根据索引名删除索引
db.user_addr.dropIndex('Al.Em_1') 
   5. 查询 
查找所有 db.foo.find() 
#查找一条记录 db.foo.findOne()
 
#根据条件检索10条记录
db.foo.find({'msg':'Hello 1'}).limit(10) 
#sort排序
db.deliver_status.find({'From':'yushunzhi@sohu.com'}).sort({'Dt',-1}) db.deliver_status.find().sort({'Ct':-1}).limit(1) 
#count操作 db.user_addr.count() 
#distinct操作
db.foo.distinct('msg') 
#>操作
db.foo.find({"timestamp": {"$gte" : 2}}) 
#子对象的查找
db.foo.find({'address.city':'beijing'}) 
   6. 管理 
查看collection数据的大小 db.deliver_status.dataSize() 
#查看colleciont状态 db.deliver_status.stats() 
#查询所有索引的大小

db.deliver_status.totalIndexSize()

精彩图集

赞助商链接