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>

相關文章
相關標籤/搜索