Mongodb的下载网址是:httP://www.mongodb.org/display/DOCS/downloads
注:Mongodb支持32位和64位系统,在32位系统下,mongodb只能处理2GB的数据,这是因为mongodb使用内存映射文件存储引擎。64位机器上不存在这个限制。
一、安装
把获取到的.tar.gz文件解压,拷贝到一个目录下,例如:/apps/mongodb/下。
二、启动服务
在启动数据库之前必须要先建立数据目录,供mongodb存放数据文件。Mongodb默认的数据目录是/data/db,如果用别的目录也没用问题。
/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
一、基本操作
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的文档。
一、停止服务
如果服务器是作为前台进程运行在终端的,就直接按Ctrl-C。
否则就用kill命令发出信号。如果mongod的PID是10014,就可以kill -2 10014或者kill 10014。
当使用kill 或者kill -2 结束mongod服务时,mongodb会等到当前运行的操作或者文件预分配完成,关闭所有打开的连接,将缓存的数据刷新到磁盘,最后停止。
注:千万不要使用kill -9 命令结束运行中的mongodb。这样会导致数据库直接关闭,上面讲到的步骤将被忽略,这会使数据文件损坏。
二、与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>
来源:oschina
链接:https://my.oschina.net/u/1254322/blog/468485