如果想檢視目前連接配接在哪個資料庫
下面,可以直接輸入db
> db
Admin
想切換到test資料庫下面
> use test
switched to db test
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 users show 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(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. 根據條件查找資料
e.g. 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 驗證表的詳細資訊
db.foo.getShardVersion() - only for use with sharding
Mongodb的備份工具mongodump
如果想備份資料庫test 如:
[[email protected] ~/mongodb/bin]./mongodump−−helpoptions:−−helpproducehelpmessage−h[−−host]argmongohosttoconnectto−d[−−db]argdatabasetouse−c[−−collection]argcollectiontouse(somecommands)−u[−−username]argusername−p[−−password]argpassword−−dbpathargdirectlyaccessmongoddatafilesinthispath,insteadofconnectingtoamongodinstance−v[−−verbose]bemoreverbose(includemultipletimesformoreverbositye.g.−vvvvv)−o[−−out]arg(=dump)outputdirectory[[email protected] /mongodb/bin]./mongodump−−helpoptions:−−helpproducehelpmessage−h[−−host]argmongohosttoconnectto−d[−−db]argdatabasetouse−c[−−collection]argcollectiontouse(somecommands)−u[−−username]argusername−p[−−password]argpassword−−dbpathargdirectlyaccessmongoddatafilesinthispath,insteadofconnectingtoamongodinstance−v[−−verbose]bemoreverbose(includemultipletimesformoreverbositye.g.−vvvvv)−o[−−out]arg(=dump)outputdirectory[[email protected] /mongodb/bin][color=Blue]./mongodump -d test -o test/[/color]
connected to: 127.0.0.1
DATABASE: test to test/test
test.user to test/test/user.bson
100000 objects
test.system.indexes to test/test/system.indexes.bson
1 objects
[[email protected] ~/mongodb/bin]$ ls
2 mongo mongodump mongofiles mongorestore mongosniff
dump mongod mongoexport mongoimport mongos test
MongoDB的資料恢複工具mongorestore
檢視test庫中的表
User
删除user表
> db.user.drop();
True
System.indexes
現在利用mongorestore表恢複剛才利用mongodump備份的資料
[[email protected] ~/mongodb/bin]./mongorestore−−helpusage:./mongorestore[options][directoryorfilenametorestorefrom]options:−−helpproducehelpmessage−h[−−host]argmongohosttoconnectto−d[−−db]argdatabasetouse−c[−−collection]argcollectiontouse(somecommands)−u[−−username]argusername−p[−−password]argpassword−−dbpathargdirectlyaccessmongoddatafilesinthispath,insteadofconnectingtoamongodinstance−v[−−verbose]bemoreverbose(includemultipletimesformoreverbositye.g.−vvvvv)[[email protected] /mongodb/bin]./mongorestore−−helpusage:./mongorestore[options][directoryorfilenametorestorefrom]options:−−helpproducehelpmessage−h[−−host]argmongohosttoconnectto−d[−−db]argdatabasetouse−c[−−collection]argcollectiontouse(somecommands)−u[−−username]argusername−p[−−password]argpassword−−dbpathargdirectlyaccessmongoddatafilesinthispath,insteadofconnectingtoamongodinstance−v[−−verbose]bemoreverbose(includemultipletimesformoreverbositye.g.−vvvvv)[[email protected] /mongodb/bin]./mongorestore -d test -c user test/test/user.bson
test/test/user.bson
going into namespace [test.user]
100000 objects
User表中的10w條記錄已經恢複
> 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
mongodb還提供了HTTP檢視運作狀态及restfull的接口
預設的通路端口是28017
本文轉自 不得閑 部落格園部落格,原文連結:http://www.cnblogs.com/DxSoft/archive/2010/10/21/1857360.html ,如需轉載請自行聯系原作者