mongodb 명령 학습

Mongodb 명령 초학
2010-06-24 10:21
현재 어느 데이터베이스 아래에 연결되어 있는지 보려면db를 직접 입력하십시오
CODE:
4> db
Admin
test 데이터베이스 아래로 전환하고 싶습니다
CODE:
4> use test
switched to db test
> db
Test
test 아래에 어떤 표나collection이 있는지 보고 싶으면 입력할 수 있습니다
CODE:
4> show collections
system.indexes
user
몬godb에서 어떤 명령을 지원하는지 알고 싶으면 help를 직접 입력할 수 있습니다
CODE:
4> 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
현재 데이터베이스에서 지원하는 방법이 무엇인지 알고 싶으면 다음과 같이 하십시오.
CODE:
4> 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이 어떤 방법을 지원하는지 알고 싶으면 다음과 같은 명령을 사용하십시오.
CODE:
4> 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
데이터베이스 테스트를 백업하려면 다음과 같이 하십시오.
CODE:
4[[email protected]  ~/mongodb/bin]$ ./mongodump --help
options:
 --help                   produce help message
 -h [ --host ] arg        mongo host to connect to
 -d [ --db ] arg          database 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
[[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
테스트 라이브러리의 테이블 보기
CODE:
4> show collections
system.indexes
User
user표 삭제
CODE:
4> db.user.drop();
True

> show collections
System.indexes
현재mongorestore표를 이용하여 방금 mongodump로 백업한 데이터를 복구합니다
CODE:
4[[email protected]  ~/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 ] arg         database 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)

[[email protected]  ~/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 objects
User 테이블의 10w 레코드가 복원됨
CODE:
4> 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

mongodb는 HTTP의 작동 상태 및 restfull 보기 인터페이스도 제공합니다.
기본 액세스 포트는 28017

좋은 웹페이지 즐겨찾기