标签:
查看MongoDB命令方法
● 在shell中运行db.listCommands()命令
● 在浏览器管理接口http://localhost:28017/_commands
下面是MongoDB最常使用的命令:
● buildinfo
管理专用命令,返回MongoDB服务器的版本号和主机操作系统信息
>db.runCommand({"buildinfo":1})
{
"version" :"2.4.14",
"gitVersion" :"05bebf9ab15511a71bfbded684bb226014c0a553",
"sysInfo" : "Linuxip-10-154-253-119 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST2009 x86_64 BOOST_LIB_VERSION=1_49",
"loaderFlags" : "-fPIC-pthread -rdynamic",
"compilerFlags" :"-Wnon-virtual-dtor -Woverloaded-virtual -fPIC -fno-strict-aliasing -ggdb-pthread -Wall -Wsign-compare -Wno-unknown-pragmas -Winvalid-pch -pipe -Werror-fno-builtin-memcmp -O3",
"allocator" :"tcmalloc",
"versionArray" : [
2,
4,
14,
0
],
"javascriptEngine" :"V8",
"bits" : 64,
"debug" : false,
"maxBsonObjectSize" :16777216,
"ok" : 1
}
● collStats
{"collStats" : collection}
返回指定统计集合的统计信息,包括大小、分配空间和索引大小
● distinct
{"distinct" : collection,"key": key, "query": query}
列出指定集合中满足查询条件的文档的指定键的所有不同的值
● drop
{"drop" : collection}
删除集合的所有数据(即删除集合)
● dropDatabase
{"dropDatabase":1}
删除当前数据库的所有数据(即删除数据库)
● dropIndexes
删除集合里面名称为name的索引,如果名称为"*"即为删除所有索引
{"dropIndexes" : collection,"index" : name}
● findAndModify
拥有类似事务特性的更新与查询操作
它是原子性的,会返回符合查询条件的更新后的文档。
一次最多只更新一个文档,也就是条件query条件,且执行sort后的第一个文档。
db.COLLECTION_NAME.findAndModify({query:{},
update:{},
remove:true|false,
new:true|false,
sort:{},
fields:{},
upsert:true|false});
query是查询选择器,与findOne的查询选择器相同
update是要更新的值,不能与remove同时出现
remove表示删除符合query条件的文档,不能与update同时出现
new为true:返回个性后的文档,false:返回个性前的,默认是false
sort:排序条件,与sort函数的参数一致。
fields:投影操作,与find*的第二个参数一致。
upsert:与update的upsert参数一样。
● getLastError
{"getLastError" : 1[,"w" : w[, "wtimeout" : timeout]]}
查看本集合执行的最后一次操作的错误信息或者其它状态信息。在w台服务器复制集合的最后操作之前,这个命令会阻塞(超时的毫秒数到了)
● isMaster
{"isMaster" : 1}
查看本服务器是主服务器还是从服务器
● listCommands
{"listCommands":1}
返回所有可以在服务器上运行的命令及相关信息
● listDatabases
{"listDatabases":1}
管理数据库命令,列出服务器上所有数据库(需要在admin库上运行),同show dbs命令
> show dbs
admin (empty)
local 0.078125GB
test 0.203125GB
> use admin
switched to db admin
>db.runCommand({"listDatabases":1})
{
"databases" : [
{
"name" :"local",
"sizeOnDisk": 83886080,
"empty" :false
},
{
"name" :"test",
"sizeOnDisk": 218103808,
"empty" :false
},
{
"name" :"admin",
"sizeOnDisk": 1,
"empty" :true
}
],
"totalSize" : 301989888,
"ok" : 1
}
● ping
检查服务器连接是否正常。即服务器上锁了,这条命令也会立刻返回。
● renameCollection
{"renameCollection" : a,"to" : b}
将集合a重命名为b,其中a和b都必需是完整的命令空间(例如"foo.bar"表示foo数据库中的bar集合)
● repairDatabase
修复并压缩当前数据库,这个操作可能会非常耗时。
● serverStatus
{"serverStatus":1}
返回这台服务器的管理统计信息。
和普通集合相比,固定集合是大小是固定的,要事先创建。固定集合很像环形队列,如果空间不足,最早文档就会被删除,为新的文档腾出空间。这意味着固定集合在新文档插入时候会自动淘汰最早的文档。
还一个和普通集合的区别:就是在默认情况下固定集合没有索引,即使是"_id"上也没有索引。
固定集合特点:
1.插入速度极快,无需分配额外空间和查找空闲列表来放置文档。
2.按插入顺序输出的查询速度极快,因为文档本身是按插入顺序存储的。
3.插入新数据时,自动淘汰最的数据。
图:插入新文档到队尾
图:当队尾满了,将最后的文档替换掉
所以特别适合存储日志这种场景。MongoDB中设计固定集合的目的就是用来存储内部的复制日志oplog.
--创建固定集合,必需显示的创建
>db.createCollection("capped_col",{capped:true,size:100000});
{ "ok" : 1 }
说明:
capped_col:为固定集合名称
固定集合大小为100 000字节
其它选项 max是指定文档的上限,如:
>db.createCollection("capped_col1",{capped:true,size:100000,max:100});
{ "ok" : 1 }
注意:指定文档上限时必需同时指定大小,淘汰机制只有在容量没有满时才会依据文档数据来工作。要是容量满了,淘汰机制则会依据容量来工作,就像别的固定集合一样。
--把普通集合转换成固定集合(大小为10000字节)
>db.runCommand({convertToCapped:"users",size:100000})
{ "ok" : 1 }
固定集合-自然排序
和前面介绍一样,自然排序就是文档在磁盘上的顺序,查询固定集合MongoDB默认是按插入顺序返回文档($natural:1)。也可以使用自然排序按照反向插入的顺序查询。
>db.capped_col.find().sort({"natural":-1})
如图示例
图:按$natural:1排序(默认)
图:按$natural:-1排序
标签:
原文地址:http://blog.csdn.net/lichangzai/article/details/50714904