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

a 夏天 提交于 2020-02-29 10:20:05

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进程都需要独立的数据目录。所以要是有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

 

一、基本操作

         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的文档。

一、停止服务

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

  • 否则就用kill命令发出信号。如果mongodPID10014,就可以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-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>


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!