Mongodb的下载网址是:httP://www.mongodb.org/display/DOCS/downloadsjava
注:Mongodb支持32位和64位系统,在32位系统下,mongodb只能处理2GB的数据,这是由于mongodb使用内存映射文件存储引擎。64位机器上不存在这个限制。git
1、安装github
把获取到的.tar.gz文件解压,拷贝到一个目录下,例如:/apps/mongodb/下。spring
2、启动服务mongodb
在启动数据库以前必需要先创建数据目录,供mongodb存放数据文件。Mongodb默认的数据目录是/data/db,若是用别的目录也没用问题。shell
/data/db建立好以后,就能够启动mongodb了,进入到安装目录的bin目录下执行mongod就能够启动mongodb服务。Mongod有不少可配置的启动选项,一些主要选项以下:数据库
--dbpath数组
指定数据目录:默认值是/data/db。每一个mongod进程都须要独立的数据目录。因此要是有3个mongod实例,必需要有3个独立的数据目录。当mongod启动时,会在数据目录中建立mongod.lock文件,这个文件用于防止其余mongod进程使用该数据目录。若是使用同一个数据目录启动另外一个mongoDB服务器,则会报错:缓存
“Unable to acquire lock for lockfilepath:/data/db/mongd.lock”服务器
--port
指定服务器监听端口号。默认端口是27017。要是运行多个mongod进程,则要给每一个指定不一样的端口号。若是启动时端口被占用,会报错:
“Address already in use for socket:0.0.0.0:27017”
--fork
以守护进程的方式运行mongoDB,建立服务器进程。
--logpath
指定日志输出路径,而不是输出到命令行。若是对文件夹有写权限的话,系统会在文件不存在时建立它。它会将已有文件覆盖掉,清除全部原来的日志记录。若是想保留原来的日志,还须要使用—logappend选项。
--config
指定配置文件,加载命令行未指定的各类选项。
例如:如今启动mongdb服务器,让其做为守护进程监听5586号端口,并将全部输出记录到mongodb.log,启动命令以下:
./mongod --port=5586 --logpath=mongodb.log –fork
Mongdb支持从文件获取配置信息。当须要的配置很是多或者要自动化mongoDB的启动时就会用到这个。指定配置文件能够用 -f 或者 --config选项
例如:运行 mongod –f /etc/mongodb.conf 就会使用 /etc/mongodb.conf做为配置文件。
/etc/mongodb.conf文件中内容以下:
prot=5586
fork=true
logpath=mongodb.log
dbpath=/data/mongodb/
logappend=true
…
#其余用到的启动命令均可以写在这里
书写配置文件须要注意的一些地方:
以#开头的行是注释
指定选项的语法就是这种“选项=值”的形式,其中选项是区分大小写的
命令行中那些如--fork的开关选项,其值要设为true
若是想把mongodb设置为随机启动,就在/etc/rc.local文件中增长一行:
/apps/mongo/bin/mongod –f /etc/mongodb.conf
1、基本操做
Mongodb服务起来后,在安装目录的bin目录下,执行mongo启动shell,以下:
$ ./mongo
MongoDB shell version:2.4.5
Connecting to :test
>
在shell下一些经常使用操做命令以下:
查看数据库使用show dbs;
切换数据库使用 use databasename;
查看数据库有多少集合使用 show collections;
在上面的命令中,
使用use testdatabase,定义了要插入数据的数据库(只有在该数据库下建立了集合,并插入了数据,该数据库才会被建立,或者不会建立该数据库)。
接着定义了局部变量post,它里面包含了“title”,“content”,“date”几个键以及所对应的内容
而后使用db.blog.insert命令把post的内容插入到集合blog中
最后使用db.blog.find()命令能够查看blog集合中全部的数据
里面的”_id”是mongodb自动生成的,它的值能够指定,若是不指定会自动生成,至关于关系型数据库表中的主键,永远不会重复。
读取
Find会返回集合里面全部的文档。若只是想查看一个文档,能够用findOne:
Find和findOne中均可以指定限定条件进行查询,多个条件直接用逗号隔开:
更新
更新使用update。Update接受(至少)两个参数:第一个是要更新文档的限定条件,第二个是新的文档。假设给上面的blog增长评论内容,则须要增长一个新的键,对应的值是存放评论的数组
第一步修改变量post,增长“comments”键
1用find查看,能够看到新的键:
删除
Remove用来从数据库中永久地删除文档,在不使用参数的状况下,会删除一个集合内的全部文档。它也能够接受一个文档以指定限定条件,例以下面的命令会删除title为My Blog Post的文档。
1、中止服务
若是服务器是做为前台进程运行在终端的,就直接按Ctrl-C。
不然就用kill命令发出信号。若是mongod的PID是10014,就能够kill -2 10014或者kill 10014。
当使用kill 或者kill -2 结束mongod服务时,mongodb会等到当前运行的操做或者文件预分配完成,关闭全部打开的链接,将缓存的数据刷新到磁盘,最后中止。
注:千万不要使用kill -9 命令结束运行中的mongodb。这样会致使数据库直接关闭,上面讲到的步骤将被忽略,这会使数据文件损坏。
2、与spring集成
根据官方文档知道Spring必须是3.0.x或以上的版本,MongoDB必须是1.6.5以上的版本才行。二者集成主要用到两个jar包:spring-data-mongodb和spring-data-commons,
这两个jar包的下载地址是:
http://www.springsource.org/spring-data/mongodb
http://www.springsource.org/spring-data/commons
还有就是mongodb自身的jar包,下载地址是:
https://github.com/mongodb/mongo-java-driver/downloads
spring的配置文件以下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:mongo="http://www.springframework.org/schema/data/mongo"
xsi:schemaLocation="
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/jdbc
http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
http://www.springframework.org/schema/jee
http://www.springframework.org/schema/jee/spring-jee-3.0.xsd
http://www.springframework.org/schema/data/mongo
http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd ">
<!-- 开启注解配置,实现自动注入 -->
<context:annotation-config />
<context:component-scan base-package="com.ysten.mongo"/>
<!-- 定义mongo对象 -->
<mongo:mongo host="localhost" port="27017">
<!-- 一些链接属性的设置
<mongo:options
connections-per-host="${mongo.connectionsPerHost}"
threads-allowed-to-block-for-connection-multiplier="${mongo.threadsAllowedToBlockForConnectionMultiplier}"
connect-timeout="${mongo.connectTimeout}"
max-wait-time="${mongo.maxWaitTime}"
auto-connect-retry="${mongo.autoConnectRetry}"
socket-keep-alive="${mongo.socketKeepAlive}"
socket-timeout="${mongo.socketTimeout}"
slave-ok="${mongo.slaveOk}"
write-number="1"
write-timeout="0"
write-fsync="true"/>
-->
</mongo:mongo>
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg ref="mongo"/>
<constructor-arg name="databaseName" value="oms"/>
</bean>
</beans>