MongoDB支持OS X、Linux及Windows等操作系统,并提供了Python,PHP,Ruby,Java,C,C#,Javascript,Perl及C++语言的驱动程序,社区中也提供了对Erlang 及.NET等平台的驱动程序
MongoDB下载:
http://www.mongodb.org/display/DOCS/Downloads
http://downloads.mongodb.org/lin ... 686-v1.2-latest.tgz MongoDB安装: CODE:
[falcon@www.fwphp.cn ~/mongodb]$tar xvzf mongodb-linux-i686-v1.2-latest.tgz
[falcon@www.fwphp.cn ~/mongodb]$mv mongodb-linux-i686-v1.2-latest mongodb
[falcon@www.fwphp.cn ~/mongodb]$cd mongodb
[falcon@www.fwphp.cn ~/mongodb]$ ls
mongo mongodump mongofiles mongorestore mongosniff
mongod mongoexport mongoimport mongos只需要解压到相关目录即可,不需要编译安装
MongoDB启动与关闭:
mongoDB的服务器端程序为mongod CODE:
[falcon@www.fwphp.cn ~/mongodb]$ bin/mongod --help
** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
** see http://blog.mongodb.org/post/137788967/32-bit-limitations for more
Allowed options:
General options:
-h [ --help ] show this usage information
--version show version information
-f [ --config ] arg configuration file specifying additional options
--port arg specify port number
--bind_ip arg local ip address to bind listener - all local ips
bound by default
-v [ --verbose ] be more verbose (include multiple times for more
verbosity e.g. -vvvvv)
--dbpath arg (=/data/db/) directory for datafiles 指定数据存放目录
--quiet quieter output 静默模式
--logpath arg file to send all output to instead of stdout 指定日志存放目录
--logappend appnd to logpath instead of over-writing 指定日志是以追加还是以覆盖的方式写入日志文件
--fork fork server process 以创建子进程的方式运行
--cpu periodically show cpu and iowait utilization 周期性的显示cpu和io的使用情况
--noauth run without security 无认证模式运行
--auth run with security 认证模式运行
--objcheck inspect client data for validity on receipt 检查客户端输入数据的有效性检查
--quota enable db quota management 开始数据库配额的管理
--quotaFiles arg number of files allower per db, requires --quota 规定每个数据库允许的文件数
--appsrvpath arg root directory for the babble app server
--nocursors diagnostic/debugging option 调试诊断选项
--nohints ignore query hints 忽略查询命中率
--nohttpinterface disable http interface 关闭http接口,默认是28017
--noscripting disable scripting engine 关闭脚本引擎
--noprealloc disable data file preallocation 关闭数据库文件大小预分配
--smallfiles use a smaller default file size 使用较小的默认文件大小
--nssize arg (=16) .ns file size (in MB) for new databases 新数据库ns文件的默认大小
--diaglog arg 0=off 1=W 2=R 3=both 7=W+some reads 提供的方式,是只读,只写,还是读写都行,还是主要写+部分的读模式
--sysinfo print some diagnostic system information 打印系统诊断信息
--upgrade upgrade db if needed 如果需要就更新数据库
--repair run repair on all dbs 修复所有的数据库
--notablescan do not allow table scans 不运行表扫描
--syncdelay arg (=60) seconds between disk syncs (0 for never) 系统同步刷新磁盘的时间,默认是60s
Replication options:
--master master mode 主复制模式
--slave slave mode 从复制模式
--source arg when slave: specify master as 当为从时,指定主的地址和端口
--only arg when slave: specify a single database to replicate 当为从时,指定需要从主复制的单一库
--pairwith arg address of server to pair with
--arbiter arg address of arbiter server 仲裁服务器,在主主中和pair中用到
--autoresync automatically resync if slave data is stale 自动同步从的数据
--oplogSize arg size limit (in MB) for op log 指定操作日志的大小
--opIdMem arg size limit (in bytes) for in memory storage of op ids指定存储操作日志的内存大小
Sharding options:
--configsvr declare this is a config db of a cluster 指定shard中的配置服务器
--shardsvr declare this is a shard db of a cluster 指定shard服务器在启动mongoDB之前,我们必须新建一个存放mongoDB数据和日志的目录 CODE:
[falcon@www.fwphp.cn ~]$ mkdir m_data m_log到此mongodb启动的准备工作做完了,现在我们启动mongodb CODE:
[falcon@www.fwphp.cn ~/mongodb]$ bin/mongod --dbpath=/home/falcon/m_data --logpath=/home/falcon/m_log --logappend &现在mongodb启动了,检查是否启动的方法: CODE:
[falcon@www.fwphp.cn ~/mongodb]$ ps -ef|grep mongod
falcon 2533 2271 0 08:21 pts/0 00:00:00 bin/mongod --dbpath=/home/falcon/m_data --logpath=/home/falcon/m_log --logappend
falcon 2541 2271 0 08:22 pts/0 00:00:00 grep mongod查看mongodb的端口是否启动,默认是28017,在启动服务器时,可以通过--port来指定 CODE:
[falcon@www.fwphp.cn ~/mongodb]$ netstat -an -t|grep 28017
tcp 0 0 0.0.0.0:28017 0.0.0.0:* LISTEN到此,证明mongoDB已经启动完成
关闭的方法很简单:
Killall mongod 或者是 kill [pid]
使用方法:
利用客户端程序mongo登录mongoDB CODE:
[falcon@www.fwphp.cn ~/mongodb]$ bin/mongo
MongoDB shell version: 1.2.4-
url: test
connecting to: test
type "help" for help
> help
HELP
Show dbs 显示数据库名
show collections 显示当前数据库中的集合集
show users 显示当前数据库的用户
show profile 显示最后系统用时大于1ms的系统概要
use 切换到数据库
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
> show dbs 默认情况下有2数据库
admin
local
> use admin 切换到admin数据库
switched to db admin
> show collections 显示admin数据库下面的集合集
system.indexes下面我们来简单的新建集合集,插入、更新、查询数据,体验mongodb带给我们不一样的生活
新建数据库的方法是在
新建集合集: CODE:
> db.createCollection("user");
{ "ok" : 1 }
> show collections
system.indexes
user
>查入数据: CODE:
> db.user.insert({uid:1,username:"Falcon.C",age:25});
> db.user.insert({uid:2,username:"aabc",age:24}); 查询数据: CODE:
> db.user.find();
{ "_id" : ObjectId("4b81e74c1f0fd3b9545cba43"), "uid" : 1, "username" : "Falcon.C", "age" : 25 }
{ "_id" : ObjectId("4b81e74d1f0fd3b9545cba44"), "uid" : 2, "username" : "aabc", "age" : 24 }查询数据的方式很丰富,有类似于SQL的条件查询,将会在以后的文档中详细介绍
如:我想查询uid为1的用户信息 CODE:
> db.user.find({uid:1});
{ "_id" : ObjectId("4b81e74c1f0fd3b9545cba43"), "uid" : 1, "username" : "Falcon.C", "age" : 25 }等等,丰富的查询还有limit ,sort ,findOne,distinct等