`
liuguofeng
  • 浏览: 449692 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Mongodb常用命令小结1

 
阅读更多
MongoDb 命令初学
2010-06-24 10:21

如果想查看当前连接在哪个数据库下面,可以直接输入db

CODE:

> db
Admin想切换到test数据库下面

CODE:

> use test
switched to db test
> db
Test想查看test下有哪些表或者叫collection,可以输入

CODE:

> show collections
system.indexes
user想知道mongodb支持哪些命令,可以直接输入help

CODE:

> 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:

> 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:

> 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 shardingMongodb的备份工具mongodump

如果想备份数据库test 如:

CODE:

[falcon@www.fwphp.cn  ~/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
[falcon@www.fwphp.cn  ~/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
[falcon@www.fwphp.cn  ~/mongodb/bin]$ ls
2     mongo   mongodump    mongofiles   mongorestore  mongosniff
dump  mongod  mongoexport  mongoimport  mongos     testMongoDB的数据恢复工具mongorestore

查看test库中的表

CODE:

> show collections
system.indexes
User删除user表

CODE:

> db.user.drop();
True

> show collections
System.indexes现在利用mongorestore表恢复刚才利用mongodump备份的数据

CODE:

[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 ] 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)

[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条记录已经恢复

CODE:

> 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


mdb_001.jpg



mongodb www.fwphp.cn-27017_1268719188106.png



rest的访问接口


mdb_002.jpg

 

 

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

分享到:
评论

相关推荐

    MongoDB常用命令小结

    本文将详述MongoDB的一些常用命令,帮助读者更好地理解和操作MongoDB数据库。 首先,我们来看几个与用户管理相关的命令。`use admin` 命令用于切换到admin数据库,这个数据库通常用于执行全局管理操作。`db.addUser...

    MongoDB 常用命令总结

    MongoDB提供的这些命令和操作使得开发者能够高效地处理各种数据需求,无论是简单的数据存储还是复杂的查询分析,MongoDB都提供了强大的工具来支持。在处理大量数据时,其性能优势尤为明显,尤其适合需要快速查询和...

    Mongodb启动命令mongod参数说明.doc

    本文将详细介绍`mongod`启动时常用的各种参数及其功能,帮助用户更好地理解和配置MongoDB。 #### 基本配置参数 1. **--quiet** - 安静输出模式,减少不必要的日志输出,适合生产环境。 2. **--port arg** - ...

    mongodb总结

    提供的文档如“mongodb常用命令.doc”和“mongodb使用指南.ppt”会进一步细化这些概念,并可能包含更多实用技巧和示例。而“map-reduce-txt.txt”可能包含了Map-Reduce操作的实例和解释,对于理解这一功能非常有帮助...

    MongoDB数据库常用操作命令7.pdf

    总结,MongoDB提供了丰富的查询和操作命令,使得在非结构化数据处理上非常灵活。熟练掌握这些命令对于日常的数据库管理、数据查询和应用程序开发都极其关键。在实际工作中,应根据具体需求灵活运用这些操作,提高...

    windows下mongodb安装与使用整理

    - 常用命令包括: - 显示所有数据库:`show dbs` - 切换数据库:`use &lt;dbname&gt;` - 插入文档:`db.&lt;collection&gt;.insert()` - 查询文档:`db.&lt;collection&gt;.find()` - 更新文档:`db.&lt;collection&gt;.update(, )` - ...

    常用的MongoDB操作.doc

    本文将总结常用的MongoDB操作,涵盖mongo-shell和pymongo两方面,既有运维层面也有应用层面,内容有浅有深。 一、连接和显示数据库 在使用MongoDB之前,需要先连接到MongoDB服务。可以使用mongo命令连接到本机上的...

    MongoDB常用操作汇总

    在本文中,我们将深入探讨MongoDB的一些常用操作,包括增删改查、查询表达式、索引创建以及游标的使用。 一、增删改查 1. **查看集合** 要查看当前数据库中的所有集合,可以使用`show collections`或`show tables...

    深入云计算 MongoDB管理与开发实战详解pdf.part1

    作为基于分布式文件存储的数据库,在目前的云计算实践中,MongoDB炙手可热。《深入云计算(MongoDB管理与开发实战详解)》系统全面的介绍了MongoDB开发、管理、维护和性能优化等方方面面。...16.6 本章小结

    MongoDB权威指南 中文版

    常用命令包括 `createIndex()` 和 `ensureIndex()`。 - **分片**:MongoDB支持水平分片,通过将数据分布在多个物理服务器上来实现负载均衡和扩展性。涉及的概念包括分片集群、分片键、分片服务器等。 - **复制集**...

    MongoDB-manual

    - **常用命令**:列出了在mongo Shell中常用的命令及其作用。 #### 并发控制 - **锁机制**:讲解了MongoDB中的锁机制及其对并发访问的影响。 - **事务处理**:说明了如何在MongoDB中使用事务来保证数据一致性。 #...

    MongoDB Training

    **2.4 DBA常用命令** - **帮助命令:** `help`显示帮助信息;`show dbs`列出所有数据库;`show collections`列出当前数据库中的集合;`show users`列出当前数据库中的用户。 - **数据库管理:** `use &lt;dbname&gt;`切换到...

    NoSQL数据库-MongoDB和Redis

    - **MongoDB常用API总结**:提供了一系列API,包括插入、查询、更新和删除等操作。 - **Redis命令总结**:覆盖了连接操作、数据操作、持久化策略等方面的常用命令。 通过对MongoDB和Redis这两种NoSQL数据库的详细...

    MongoDB 总结

    ### MongoDB 总结 #### 一、数据库操作 在 MongoDB 中进行数据库操作是十分重要的,以下是一些常用的操作指令: 1. **`use DATABASE_NAME`**:切换或创建数据库。当使用 `use DATABASE_NAME` 命令时,如果指定的...

    MongoDB权威指南中文版

    10. 管理工具:概述用于监控和维护MongoDB的常用工具和命令,比如mongo shell、MMS(MongoDB Monitoring Service)、GUI工具等。 11. 应用集成:解释如何将MongoDB与其他编程语言或框架集成,如Node.js、Python、...

    mongoDB 入门

    本篇文章将深入介绍MongoDB的基础知识,包括它的核心概念、安装与配置、数据模型、查询操作以及一些常用命令。 1. MongoDB的核心概念 - 文档数据库:MongoDB以JSON格式的文档存储数据,每个文档由键值对组成,支持...

Global site tag (gtag.js) - Google Analytics