以下環境為mac osx + jdk 1.8 + mongodb v3.2.3
一、安裝
brew安裝方式是mac下最簡單的方式
二、啟動
2.1 最基本的啟動
不加任何參數時,db預設儲存在/data/db目錄(如果該目錄不存在,啟動會報錯),監聽的端口是27017,且不啟動安全認證機制(即:誰都可以連接配接,隻要連接配接上來的使用者都是管理者)
2.2 指定dbpath
指定dbpath後,資料檔案将儲存在指定的目錄下(注意:該目錄必須有讀寫權限)
2.3 指定端口
2.4 啟用安全認證
這個下面還會仔細講解,這裡隻要記得有--auth這個選項即可。
2.5 其它一些選項
如果想詳細了解所有啟動選項,可以加--help檢視所有可選參數。
啟動成功後,可以用 mongo 指令來連接配接
然後就可以直接使用各種指令來操作db了
三、安全相關
不帶--auth的啟動方式是很可怕的,沒有任何安全控制,一般隻限于開發環境。生産環境肯定要開啟安全認證,mongodb在安全認證的主要思路是:
先在某個庫上建立使用者(db.createUser) -> 将該使用者授權(db.auth) -> mongod啟動時指定--auth選項 -> mongo用戶端連接配接時指定使用者名、密碼、認證db(或者連接配接時先不指定使用者名、密碼,連接配接上以後,再用db.auth切換到認證使用者身份)
3.0 建立資料庫
跟mysql差不多,use 後加資料庫名稱即可,如果資料庫不存在,會自動建立。假設以下的所有安全相關的操作,都是在mydb這個庫下。
3.1 建立使用者
切換到相對的db後,使用下面的指令建立使用者
3.2 授權
3.3 用--auth 重新開機mongod
3.4 用戶端連接配接時,指定安全資訊
大家參考上面的指令修改相關參數(比如:端口号之類的),連接配接上去後,可以嘗試
看看能否寫入資料。
注:作為對比,大家還可以建立一個其它隻有read權限的使用者(比如:guest/guest),同樣的姿勢連接配接上去,再insert試試,正常情況話,應該寫入失敗。
四、CRUD操作
一般教程上都是講解如果在mongo終端下使用指令來做CRUD,但是更多情況下,我們是在代碼裡完成這些操作的,是以下面說下如何利用spring-data-mongo來操作mongo,以gradle項目為例,下面的代碼參考了spring官方的示例代碼
4.1 build.gradle檔案
其實關鍵的隻有一行:
4.2 spring配置檔案
4.3 定義Model
4.4 定義DAO接口
4.5 Application使用示例