MongoDB 是最早熱門非關系資料庫的之一,使用也比較普遍,一般會用做離線資料分析來使用,放到内網的居多。由于很多公司使用了雲服務,伺服器預設都開放了外網位址,導緻前一陣子大批 MongoDB 因配置漏洞被攻擊,資料被删,引起了人們的注意,同時也說明了很多公司生産中大量使用 Mongodb。
MongoDB(來自于英文單詞“Humongous”,中文含義為“龐大”)是可以應用于各種規模的企業、各個行業以及各類應用程式的開源資料庫。基于分布式檔案存儲的資料庫。由C++語言編寫。旨在為 WEB 應用提供可擴充的高性能資料存儲解決方案。MongoDB 是一個高性能,開源,無模式的文檔型資料庫,是目前 NoSql 資料庫中比較熱門的一種。
MongoDB 是一個介于關系資料庫和非關系資料庫之間的産品,是非關系資料庫當中功能最豐富,最像關系資料庫的。他支援的資料結構非常松散,是類似 json 的 bjson 格式,是以可以存儲比較複雜的資料類型。MongoDB 最大的特點是他支援的查詢語言非常強大,其文法有點類似于面向對象的查詢語言,幾乎可以實作類似關系資料庫單表查詢的絕大部分功能,而且還支援對資料建立索引。
傳統的關系資料庫一般由資料庫(database)、表(table)、記錄(record)三個層次概念組成,MongoDB 是由資料庫(database)、集合(collection)、文檔對象(document)三個層次組成。MongoDB 對于關系型資料庫裡的表,但是集合中沒有列、行和關系概念,這展現了模式自由的特點。
MongoDB 中的一條記錄就是一個文檔,是一個資料結構,由字段和值對組成。MongoDB 文檔與 JSON 對象類似。字段的值有可能包括其它文檔、數組以及文檔數組。MongoDB 支援 OS X、Linux 及 Windows 等作業系統,并提供了 Python,PHP,Ruby,Java及 C++ 語言的驅動程式,社群中也提供了對 Erlang 及 .NET 等平台的驅動程式。
MongoDB 的适合對大量或者無固定格式的資料進行存儲,比如:日志、緩存等。對事物支援較弱,不适用複雜的多文檔(多表)的級聯查詢。文中示範 Mongodb 版本為 3.5。
Spring Boot 對各種流行的資料源都進行了封裝,當然也包括了 Mongodb,下面給大家介紹如何在 Spring Boot 中使用 Mongodb:
pom 包裡面添加 <code>spring-boot-starter-data-mongodb</code>包引用
多個 IP 叢集可以采用以下配置:
Repository 層實作了 User 對象的增删改查

5、檢視驗證結果
可以使用工具 MongoVUE 工具來連接配接後直接圖形化展示檢視,也可以登入伺服器用指令來檢視
1.登入 mongos
bin/mongo -host localhost -port 20000
2、切換到 test 庫
use test
3、查詢 user 集合資料
db.user.find()
根據3查詢的結果來觀察測試用例的執行是否正确。
到此 Spring Boot 對應 MongoDB 的增删改查功能已經全部實作。
接下來實作 MongoDB 多資料源的使用
封裝讀取以 Mongodb 開頭的兩個配置檔案
配置不同包路徑下使用不同的資料源
讀取對應的配置資訊并且構造對應的 MongoTemplate
兩個庫的配置資訊已經完成。
到此,MongoDB 多資料源的使用已經完成。
文章内容已經更新到 Spring Boot 2.x
示例代碼:https://github.com/ityouknow/spring-boot-examples/tree/master/spring-boot-mongodb