MongoDB基本管理命令


MongoDB是一个NoSQL数据库系统:一个数据库可以包含多个集合(Collection),每个集合对应于关系数据库中的表;而每个集合中可以存储一组由列标识的记录,列是可以自由定义的,非常灵活,由一组列标识的实体的集合对应于关系数据库表中的行。下面通过熟悉MongoDB的基本管理命令,来了解MongoDB提供的DBMS的基本功能和行为。

MongoDB命令帮助系统

在安装MongoDB后,启动服务器进程(mongod),可以通过在客户端命令mongo实现对MongoDB的管理和监控。看一下MongoDB的命令帮助系统:

  1. root@dev2:~# mongo  
  2. MongoDB shell version: 1.8.3  
  3. connecting to: test  
  4. > help  
  5.         db.help()                    help on db methods  
  6.         db.mycoll.help()             help on collection methods  
  7.         rs.help()                    help on replica set methods  
  8.         help connect                 connecting to a db help  
  9.         help admin                   administrative help  
  10.         help misc                    misc things to know  
  11.         help mr                      mapreduce help  
  12.   
  13.         show dbs                     show database names  
  14.         show collections             show collections in current database  
  15.         show users                   show users in current database  
  16.         show profile                 show most recent system.profile entries with time >= 1ms  
  17.         use <db_name>                set current database  
  18.         db.foo.find()                list objects in collection foo  
  19.         db.foo.find( { a : 1 } )     list objects in foo where a == 1  
  20.         it                           result of the last line evaluated; use to further iterate  
  21.         DBQuery.shellBatchSize = x   set default number of items to display on shell  
  22.         exit                         quit the mongo shell  
这是MongoDB最顶层的命令列表,主要告诉我们管理数据库相关的一些抽象的范畴:数据库操作帮助、集合操作帮助、管理帮助。如果你想了解数据库操作更详细的帮助命令,可以直接使用db.help(),如下所示:
  1. > db.help()  
  2. DB methods:  
  3.         db.addUser(username, password[, readOnly=false])  
  4.         db.auth(username, password)  
  5.         db.cloneDatabase(fromhost)  
  6.         db.commandHelp(name) returns the help for the command  
  7.         db.copyDatabase(fromdb, todb, fromhost)  
  8.         db.createCollection(name, { size : ..., capped : ..., max : ... } )  
  9.         db.currentOp() displays the current operation in the db  
  10.         db.dropDatabase()  
  11.         db.eval(func, args) run code server-side  
  12.         db.getCollection(cname) same as db['cname'] or db.cname  
  13.         db.getCollectionNames()  
  14.         db.getLastError() - just returns the err msg string  
  15.         db.getLastErrorObj() - return full status object  
  16.         db.getMongo() get the server connection object  
  17.         db.getMongo().setSlaveOk() allow this connection to read from the nonmaster member of a replica pair  
  18.         db.getName()  
  19.         db.getPrevError()  
  20.         db.getProfilingLevel() - deprecated  
  21.         db.getProfilingStatus() - returns if profiling is on and slow threshold   
  22.         db.getReplicationInfo()  
  23.         db.getSiblingDB(name) get the db at the same server as this one  
  24.         db.isMaster() check replica primary status  
  25.         db.killOp(opid) kills the current operation in the db  
  26.         db.listCommands() lists all the db commands  
  27.         db.printCollectionStats()  
  28.         db.printReplicationInfo()  
  29.         db.printSlaveReplicationInfo()  
  30.         db.printShardingStatus()  
  31.         db.removeUser(username)  
  32.         db.repairDatabase()  
  33.         db.resetError()  
  34.         db.runCommand(cmdObj) run a database command.  if cmdObj is a string, turns it into { cmdObj : 1 }  
  35.         db.serverStatus()  
  36.         db.setProfilingLevel(level,<slowms>) 0=off 1=slow 2=all  
  37.         db.shutdownServer()  
  38.         db.stats()  
  39.         db.version() current version of the server  
  40.         db.getMongo().setSlaveOk() allow queries on a replication slave server  
对数据库进行管理和操作的基本命令,可以从上面获取到。如果想要得到更多,而且每个命令的详细用法,可以使用上面列出的db.listCommands()查询。

另一个比较基础的是对指定数据库的集合进行操作、管理和监控,可以通过查询db.mycoll.help()获取到:

  1. > db.mycoll.help()  
  2. DBCollection help  
  3.         db.mycoll.find().help() - show DBCursor help  
  4.         db.mycoll.count()  
  5.         db.mycoll.dataSize()  
  6.         db.mycoll.distinct( key ) - eg. db.mycoll.distinct( 'x' )  
  7.         db.mycoll.drop() drop the collection  
  8.         db.mycoll.dropIndex(name)  
  9.         db.mycoll.dropIndexes()  
  10.         db.mycoll.ensureIndex(keypattern[,options]) - options is an object with these possible fields: name, unique, dropDups  
  11.         db.mycoll.reIndex()  
  12.         db.mycoll.find([query],[fields]) - query is an optional query filter. fields is optional set of fields to return.  
  13.                                                       e.g. db.mycoll.find( {x:77} , {name:1, x:1} )  
  14.         db.mycoll.find(...).count()  
  15.         db.mycoll.find(...).limit(n)  
  16.         db.mycoll.find(...).skip(n)  
  17.         db.mycoll.find(...).sort(...)  
  18.         db.mycoll.findOne([query])  
  19.         db.mycoll.findAndModify( { update : ... , remove : bool [, query: {}, sort: {}, 'new': false] } )  
  20.         db.mycoll.getDB() get DB object associated with collection  
  21.         db.mycoll.getIndexes()  
  22.         db.mycoll.group( { key : ..., initial: ..., reduce : ...[, cond: ...] } )  
  23.         db.mycoll.mapReduce( mapFunction , reduceFunction , <optional params> )  
  24.         db.mycoll.remove(query)  
  25.         db.mycoll.renameCollection( newName , <dropTarget> ) renames the collection.  
  26.         db.mycoll.runCommand( name , <options> ) runs a db command with the given name where the first param is the collection name  
  27.         db.mycoll.save(obj)  
  28.         db.mycoll.stats()  
  29.         db.mycoll.storageSize() - includes free space allocated to this collection  
  30.         db.mycoll.totalIndexSize() - size in bytes of all the indexes  
  31.         db.mycoll.totalSize() - storage allocated for all data and indexes  
  32.         db.mycoll.update(query, object[, upsert_bool, multi_bool])  
  33.         db.mycoll.validate() - SLOW  
  34.         db.mycoll.getShardVersion() - only for use with sharding  

有关数据库和集合管理的相关命令,是最基础和最常用的,如集合查询、索引操作等。

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 下一页

相关内容