天天看點

mongodb 速成筆記

以下環境為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使用示例