MongoDB常用命令管理

MongoDB是一个Nosql数据库系统,其提供了DBMS的基本功能和行为。

MongoDB命令帮助系统

>help

       db.help()                    help on db methods

       db.mycoll.help()             help on collection methods

       sh.help()                    sharding helpers

       rs.help()                    replica set helpers

       help admin                   administrative help

       help connect                 connecting to a db help

       help keys                    key shortcuts

       help misc                    misc things to know

       help mr                      mapreduce

       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

       show logs                    show the accessible logger names

       show log [name]              prints out the last segment of log in memory, 'global' is default

       use <db_name>                set current database

       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

       DBQuery.shellBatchSize = x   set default number of items to display on shell

       exit                         quit the mongo shell

通过客户端连接MongoDB服务器,执行help命令。这是MongoDB最顶层的命令列表,主要告诉我们管理数据库相关的一些抽象的范畴:数据库操作帮助、集合操作帮助、replica set帮助等,比如你想了解数据库操作更详细的帮助命令,可以直接使用db.help(),如下所示:

>db.help()

DB methods:

db.adminCommand(nameOrDocument) - switches to 'admin' db, and runs command [ just calls db.runCommand(...) ]

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.createUser(userDocument)

db.currentOp() displays currently executing operations in the db

db.dropDatabase()

db.eval() - deprecated

db.fsyncLock() flush data to disk and lock server for backups

db.fsyncUnlock() unlocks server following a db.fsyncLock()

db.getCollection(cname) same as db['cname'] or db.cname

db.getCollectionInfos([filter]) - returns a list that contains the names and options of the db's collections

db.getCollectionNames()

db.getLastError() - just returns the err msg string

db.getLastErrorObj() - return full status object

db.getLogComponents()

db.getMongo() get the server connection object

db.getMongo().setSlaveOk() allow queries on a replication slave server

db.getName()

db.getPrevError()

db.getProfilingLevel() - deprecated

db.getProfilingStatus() - returns if profiling is on and slow threshold

db.getReplicationInfo()

db.getSiblingDB(name) get the db at the same server as this one

db.getWriteConcern() - returns the write concern used for any operations on this db, inherited from server object if set

db.hostInfo() get details about the server's host

db.isMaster() check replica primary status

db.killOp(opid) kills the current operation in the db

db.listCommands() lists all the db commands

db.loadServerScripts() loads all the scripts in db.system.js

db.logout()

db.printCollectionStats()

db.printReplicationInfo()

db.printShardingStatus()

db.printSlaveReplicationInfo()

db.dropUser(username)

db.repairDatabase()

db.resetError()

db.runCommand(cmdObj) run a database command. if cmdObj is a string, turns it into { cmdObj : 1 }

db.serverStatus()

db.setLogLevel(level,)

db.setProfilingLevel(level,) 0=off 1=slow 2=all

db.setWriteConcern( ) - sets the write concern for writes to the db

db.unsetWriteConcern( ) - unsets the write concern for writes to the db

db.setVerboseShell(flag) display extra information in shell output

db.shutdownServer()

db.stats()

db.version() current version of the server

它会列出数据库操作方法。又比如你想查询对数据库集合的操作方法。使用db.mycoll.help()

> db.mycoll.help()

DBCollection help

       db.mycoll.find().help() - show DBCursor help

       db.mycoll.bulkWrite( operations, <optional params> ) - bulk execute write operations, optional parameters are: w, wtimeout, j

       db.mycoll.count( query = {}, <optional params> ) - count the number of documents that matches the query, optional parameters are: limit, skip, hint, maxTimeMS

       db.mycoll.copyTo(newColl) - duplicates collection by copying all documents to newColl; no indexes are copied.

       db.mycoll.convertToCapped(maxBytes) - calls {convertToCapped:'mycoll', size:maxBytes}} command

       db.mycoll.createIndex(keypattern[,options])

       db.mycoll.createIndexes([keypatterns], <options>)

       db.mycoll.dataSize()

       db.mycoll.deleteOne( filter, <optional params> ) - delete first matching document, optional parameters are: w, wtimeout, j

       db.mycoll.deleteMany( filter, <optional params> ) - delete all matching documents, optional parameters are: w, wtimeout, j

       db.mycoll.distinct( key, query, <optional params> ) - e.g. db.mycoll.distinct( 'x' ), optional parameters are: maxTimeMS

       db.mycoll.drop() drop the collection

       db.mycoll.dropIndex(index) - e.g. db.mycoll.dropIndex( "indexName" ) or db.mycoll.dropIndex( { "indexKey" : 1 } )

       db.mycoll.dropIndexes()

       db.mycoll.ensureIndex(keypattern[,options]) - DEPRECATED, use createIndex() instead

       db.mycoll.explain().help() - show explain help

       db.mycoll.reIndex()

       db.mycoll.find([query],[fields]) - query is an optional query filter. fields is optional set of fields to return.

                                                     e.g. db.mycoll.find( {x:77} , {name:1, x:1} )

       db.mycoll.find(...).count()

       db.mycoll.find(...).limit(n)

       db.mycoll.find(...).skip(n)

       db.mycoll.find(...).sort(...)

       db.mycoll.findOne([query], [fields], [options], [readConcern])

       db.mycoll.findOneAndDelete( filter, <optional params> ) - delete first matching document, optional parameters are: projection, sort, maxTimeMS

       db.mycoll.findOneAndReplace( filter, replacement, <optional params> ) - replace first matching document, optional parameters are: projection, sort, maxTimeMS, upsert, returnNewDocument

       db.mycoll.findOneAndUpdate( filter, update, <optional params> ) - update first matching document, optional parameters are: projection, sort, maxTimeMS, upsert, returnNewDocument

       db.mycoll.getDB() get DB object associated with collection

       db.mycoll.getPlanCache() get query plan cache associated with collection

       db.mycoll.getIndexes()

       db.mycoll.group( { key : ..., initial: ..., reduce : ...[, cond: ...] } )

       db.mycoll.insert(obj)

       db.mycoll.insertOne( obj, <optional params> ) - insert a document, optional parameters are: w, wtimeout, j

       db.mycoll.insertMany( [objects], <optional params> ) - insert multiple documents, optional parameters are: w, wtimeout, j

       db.mycoll.mapReduce( mapFunction , reduceFunction , <optional params> )

       db.mycoll.aggregate( [pipeline], <optional params> ) - performs an aggregation on a collection; returns a cursor

       db.mycoll.remove(query)

       db.mycoll.replaceOne( filter, replacement, <optional params> ) - replace the first matching document, optional parameters are: upsert, w, wtimeout, j

       db.mycoll.renameCollection( newName , <dropTarget> ) renames the collection.

       db.mycoll.runCommand( name , <options> ) runs a db command with the given name where the first param is the collection name

       db.mycoll.save(obj)

       db.mycoll.stats({scale: N, indexDetails: true/false, indexDetailsKey: <index key>, indexDetailsName: <index name>})

       db.mycoll.storageSize() - includes free space allocated to this collection

       db.mycoll.totalIndexSize() - size in bytes of all the indexes

       db.mycoll.totalSize() - storage allocated for all data and indexes

       db.mycoll.update( query, object[, upsert_bool, multi_bool] ) - instead of two flags, you can pass an object with fields: upsert, multi

       db.mycoll.updateOne( filter, update, <optional params> ) - update the first matching document, optional parameters are: upsert, w, wtimeout, j

       db.mycoll.updateMany( filter, update, <optional params> ) - update all matching documents, optional parameters are: upsert, w, wtimeout, j

       db.mycoll.validate( <full> ) - SLOW

       db.mycoll.getShardVersion() - only for use with sharding

       db.mycoll.getShardDistribution() - prints statistics about data distribution in the cluster

       db.mycoll.getSplitKeysForChunks( <maxChunkSize> ) - calculates split points over all chunks and returns splitter function

       db.mycoll.getWriteConcern() - returns the write concern used for any operations on this collection, inherited from server/db if set

       db.mycoll.setWriteConcern( <write concern doc> ) - sets the write concern for writes to the collection

       db.mycoll.unsetWriteConcern( <write concern doc> ) - unsets the write concern for writes to the collection

基本命令

1、show dbs

显示当前数据库服务器上的数据库

2、use  test

 切换到指定数据库test的上下文,可以在此上下文中管理test数据库以及其中的集合等

3、show collections

显示数据库中所有的集合(collection)

4、db.serverStatus()  

查看数据库服务器的状态。

5、db.stats()

查询指定数据库统计信息

6、db.getCollectionNames()

查询指定数据库包含的集合名称列表

7、db.shutdownServer()

终止服务器进程。

DDL和DML

1、 use test

创建数据库

2、db.dropDatabase()

删除数据库。先使用use test切换到test数据库,使用db.dropDatabase()即可删除数据库。

3、db.createCollection(name, { size : ..., capped : ..., max : ... } )

创建集合

4、db.mycoll.drop()

删除集合

5、db.mycoll.save({'version':'3.5', 'segment':'e3ol6'})

插入更新记录。

6、db.mycoll.findOne({'version':'3.5'})

查询一条记录。

7、db.mycoll.find({'version':'3.5'})

查询多条记录。

8、db.mycoll.remove({'version':'3.5'})

删除记录。

9、db.mycoll.ensureIndex({'title':1, 'url':-1})

创建索引

可以使用集合的ensureIndex(keypattern[,options])方法,上述,ensureIndex方法参数中,数字1表示升序,-1表示降序。

10、 db.mycoll.dropIndex(name)

删除索引。

11、db.mycoll.count()

统计集合记录数。

12、db.mycoll.find().count()

查询并统计结果记录数。

find()可以提供查询参数,然后查询并统计结果。

13、db.mycoll.storageSize()

查询指定数据库的集合当前可用的存储空间。

14、db.baseSe.totalSize()

查询指定数据库的集合分配的存储空间。

备份恢复

待续。。。

猜你喜欢

转载自blog.csdn.net/qq_35462323/article/details/88344191