日期:2014-05-16  浏览次数:20429 次

征服 Mongodb 之 《MongoDB权威指南》读书笔记(一)

? ? 手里有本《MongoDB权威指南》,打算做个读书笔记,把常规命令、数据类型过一遍,强迫记忆。酷

?

? ? 相关文章:

? ??征服 Mongodb 之 安装与主从配置

? ? 关于如何安装、配置、启动MongoDB等,参考上篇文章。

?

? ? 一、常规命令

  • 登录

? ? 类似于MySQL登录,可参考如下命令:

?

# mongo --help
MongoDB shell version: 2.0.7
usage: mongo [options] [db address] [file names (ending in .js)]
db address can be:
  foo                   foo database on local machine
  192.169.0.5/foo       foo database on 192.168.0.5 machine
  192.169.0.5:9999/foo  foo database on 192.168.0.5 machine on port 9999
options:
  --shell               run the shell after executing files
  --nodb                don't connect to mongod on startup - no 'db address' arg expected
  --norc                will not run the ".mongorc.js" file on start up
  --quiet               be less chatty
  --port arg            port to connect to
  --host arg            server to connect to
  --eval arg            evaluate javascript
  -u [ --username ] arg username for authentication
  -p [ --password ] arg password for authentication
  -h [ --help ]         show this usage information
  --version             show version information
  --verbose             increase verbosity
  --ipv6                enable IPv6 support (disabled by default)

file names: a list of files to run. files have to end in .js and will exit after unless --shell is specified
?

?

? ? 譬如,我经常这么用,一步到位:

??

?

# mongo 10.11.20.140/zlex
MongoDB shell version: 2.0.7
connecting to: 10.11.20.140/zlex
> 
?

?

  • ?查看当前数据库/切换数据库? ??
# mongo 
MongoDB shell version: 2.0.7
connecting to: test
> db
test
> use zlex
switched to db zlex
> 
?
  • ?查看当前数据库下的表,及索引?
> show collections
system.indexes
test
user
??? system.indexes索引信息

? ? test、user是数据表

?

  • ?查看当前数据库、表状态
> db.stats()
{
        "db" : "test",
        "collections" : 6,
        "objects" : 16,
        "avgObjSize" : 44.75,
        "dataSize" : 716,
        "storageSize" : 32768,
        "numExtents" : 6,
        "indexes" : 4,
        "indexSize" : 32704,
        "fileSize" : 201326592,
        "nsSizeMB" : 16,
        "ok" : 1
}
> db.blog.stats()
{
        "ns" : "test.blog",
        "count" : 0,
        "size" : 0,
        "storageSize" : 8192,
        "numExtents" : 1,
        "nindexes" : 1,
        "lastExtentSize" : 8192,
        "paddingFactor" : 1.56,
        "flags" : 1,
        "totalIndexSize" : 8176,
        "indexSizes" : {
                "_id_" : 8176
        },
        "ok" : 1
}
? ?PS:MongoDB 1.8支持16MB的消息长度
  • ??一些边边角角的函数,你懂滴,横向思维下大笑
> db.help()
DB methods:
        db.addUser(username, password[, readOnly=false])
        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()