首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

mongodb有关操作命令

2013-10-15 
mongodb相关操作命令查询所有数据库列表??show?dbs 如果想查看当前连接在哪个数据库下面,可以直接输入db?

mongodb相关操作命令

查询所有数据库列表?>?show?dbs
如果想查看当前连接在哪个数据库下面,可以直接输入db?>?db
Admin想切换到test数据库下面?>?use?test?switched?to?db?test
>?db
Test想查看test下有哪些表或者叫collection,可以输入?>?show?collections?system.indexes
user想知道mongodb支持哪些命令,可以直接输入help?>?help?HELP
??????show?dbs?show?database?names
??????show?collections???show?collections?in?current?database
??????show?usersshow?users?in?current?database
??????show?profile???????show?most?recent?system.profile?entries?with?time?>=?1ms???????use?<db?name>??????set?curent?database?to?<db?name>???????db.help()help?on?DB?methods
??????db.foo.help()??????help?on?collection?methods???????db.foo.find()??????list?objects?in?collection?foo
??????db.foo.find(?{?a?:?1?}?)?????list?objects?in?foo?where?a?==?1
??????it???????result?of?the?last?line?evaluated;?use?to?further?iterate如果想知道当前数据库支持哪些方法:?>?db.help();
DB?methods:
??????db.addUser(username,?password)?添加数据库授权用户???????db.auth(username,?password)??????访问认证???????db.cloneDatabase(fromhost)?克隆数据库
??????db.commandHelp(name)?returns?the?help?for?the?command???????db.copyDatabase(fromdb,?todb,?fromhost)??复制数据库
??????db.createCollection(name,?{?size?:?...,?capped?:?...,?max?:?...?}?)?创建表???????db.currentOp()?displays?the?current?operation?in?the?db???????db.dropDatabase()????????删除当前数据库
??????db.eval_r(func,?args)?run?code?server-side
??????db.getCollection(cname)?same?as?db['cname']?or?db.cname???????db.getCollectionNames()????????获取当前数据库的表名???????db.getLastError()?-?just?returns?the?err?msg?string???????db.getLastErrorObj()?-?return?full?status?object???????db.getMongo()?get?the?server?connection?object
??????db.getMongo().setSlaveOk()?allow?this?connection?to?read?from?the?nonmaster?member?of?a?replica?pair???????db.getName()???????db.getPrevError()???????db.getProfilingLevel()???????db.getReplicationInfo()
??????db.getSisterDB(name)?get?the?db?at?the?same?server?as?this?onew???????db.killOp()?kills?the?current?operation?in?the?db
??????db.printCollectionStats()???打印各表的状态信息
??????db.printReplicationInfo()????????打印主数据库的复制状态信息






??????db.printSlaveReplicationInfo()????????打印从数据库的复制状态信息???????db.printShardingStatus()??????打印分片状态信息???????db.removeUser(username)?删除数据库用户???????db.repairDatabase()?修复数据库
??????db.resetError()
??????db.runCommand(cmdObj)?run?a?database?command.??if?cmdObj?is?a?string,?turns?it?into?{?cmdObj?:?1?}???????db.setProfilingLevel(level)?0=off?1=slow?2=all???????db.shutdownServer()
??????db.version()?current?version?of?the?server
如果想知道当前数据库下的表或者表collection支持哪些方法,可以使用一下命令如:?>?db.user.help();??user为表名
DBCollection?help
??????db.foo.count()??????统计表的行数
??????db.foo.dataSize()????????统计表数据的大小
??????db.foo.distinct(?key?)?-?eg.?db.foo.distinct(?'x'?)??????按照给定的条件除重???????db.foo.drop()?drop?the?collection?删除表
??????db.foo.dropIndex(name)??删除指定索引???????db.foo.dropIndexes()?删除所有索引
??????db.foo.ensureIndex(keypattern,options)?-?options?should?be?an?object?with?these?possible?fields:?name,?unique,?dropDups??增加索引
??????db.foo.find(?[query]?,?[fields])?-?first?parameter?is?an?optional?query?filter.?second?parameter?is?optional?set?of?fields?to?return.?根据条件查找数据
-----------------------
通过条件查询:?db.foo.find(?{?x?:?77?}?,?{?name?:?1?,?x?:?1?}?)?-----------------------------
??????db.foo.find(...).count()
??????db.foo.find(...).limit(n)?根据条件查找数据并返回指定记录数???????db.foo.find(...).skip(n)
??????db.foo.find(...).sort(...)?查找排序
??????db.foo.findOne([query])?根据条件查询只查询一条数据
??????db.foo.getDB()?get?DB?object?associated?with?collection??返回表所属的库???????db.foo.getIndexes()?显示表的所有索引
??????db.foo.group(?{?key?:?...,?initial:?...,?reduce?:?...[,?cond:?...]?}?)?根据条件分组???????db.foo.mapReduce(?mapFunction?,?reduceFunction?,?<optional?params>?)???????db.foo.remove(query)?根据条件删除数据
??????db.foo.renameCollection(?newName?)?renames?the?collection??重命名表
??????db.foo.save(obj)?保存数据???????db.foo.stats()??查看表的状态
??????db.foo.storageSize()?-?includes?free?space?allocated?to?this?collection?查询分配到表空间大小???????db.foo.totalIndexSize()?-?size?in?bytes?of?all?the?indexes?查询所有索引的大小???????db.foo.totalSize()?-?storage?allocated?for?all?data?and?indexes?查询表的总大小???????db.foo.update(query,?object[,?upsert_bool])?根据条件更新数据???????db.foo.validate()?-?SLOW?验证表的详细信息

?

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()

热点排行