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>