Mongodb安装、简单使用及与spring的集成

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进程都须要独立的数据目录。因此要是有3mongod实例,必需要有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

FindfindOne中均可以指定限定条件进行查询,多个条件直接用逗号隔开:

  • 更新

更新使用updateUpdate接受(至少)两个参数:第一个是要更新文档的限定条件,第二个是新的文档。假设给上面的blog增长评论内容,则须要增长一个新的键,对应的值是存放评论的数组

第一步修改变量post,增长“comments”键

1find查看,能够看到新的键:

 

  • 删除

Remove用来从数据库中永久地删除文档,在不使用参数的状况下,会删除一个集合内的全部文档。它也能够接受一个文档以指定限定条件,例以下面的命令会删除titleMy Blog Post的文档。

1、中止服务

  • 若是服务器是做为前台进程运行在终端的,就直接按Ctrl-C

  • 不然就用kill命令发出信号。若是mongodPID10014,就能够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-mongodbspring-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>

相关文章
相关标签/搜索