日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MongoDB 入门,我是花了心思的

發布時間:2024/8/23 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MongoDB 入门,我是花了心思的 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者 |?沉默王二

責編 | Carol

封圖 | CSDN 付費下載自視覺中國

有時候不得不感慨一下,系統升級真的是好處多多,不僅讓我有機會重構了之前的爛代碼,也滿足了我積極好學的虛榮心。你看,Redis 入門了、Elasticsearch 入門了,這次又要入門 MongoDB,感覺自己變禿的同時,也變強大了。

小伙伴們在繼續閱讀之前,我必須要聲明一點,我對 MongoDB 并沒有進行很深入的研究,僅僅是因為要用,就學一下。但作為一名負責任的技術博主,我是花了心思的,這篇入門教程,小伙伴們讀完后絕對會感到滿意,忍不住點贊。

當然了,小伙伴們遇到文章中有錯誤的地方,不要手下留情,可以組團過來捶我,但要保證一點,不要打臉,我怕毀容。

MongoDB 是什么

MongoDB 是一個基于分布式的文件存儲數據庫,旨在為 Web 應用提供可擴展的高性能數據存儲解決方案。

以上引用來自于官方,不得不說,解釋得文縐縐的。那就讓我來換一種通俗的說法給小伙伴們解釋一下,MongoDB 將數據存儲為一個文檔(類似于 JSON 對象),數據結構由鍵值對組成,類似于 Java 中的 Map,通過 key 的方式訪問起來效率就高得多,對吧?這也是 MongoDB 最重要的特點。

MongoDB 提供了企業版(功能更強大)和社區版,對于我們開發者來說,拿社區版來學習和使用就足夠了。MongoDB 的驅動包很多,常見的編程語言都有覆蓋到,比如說 Java、JavaScript、C++、C#、Python 等等。

很多知名的互聯網公司都在用 MongoDB,比如說谷歌、Facebook、eBay 等等。總之,值得信賴,小伙伴們放心入門,技多不壓身啊,就當是給自己一次學習的機會。

安裝 MongoDB

MongoDB 針對不同的操作系統有不同的安裝包,我們這篇入門的文章就以 Windows 為例吧。

官網下載地址如下:

https://www.mongodb.com/download-center/community

最新的版本是 4.2.6,我選擇的是安裝版,msi 格式的,264M 左右。下載完就可以雙擊運行安裝,傻瓜式的。

建議選擇「Custom」自定義安裝,如下圖所示。

以服務模式運行,并配置好數據和日志目錄,如下圖所示。

建議取消勾選安裝 MongoDB 的圖形化客戶端工具,否則安裝速度慢到你想要去扣會手機。

安裝完成后進入到 bin 目錄下,雙擊 mongo.exe 文件就可以連接到 MongoDB 服務了。

1)MongoDB 的默認端口號為 27017。

2)MongoDB 的版本號為 4.2.6。

默認會連接到 test 文檔(相當于數據),可以通過 db 命令查詢。

還可以運行一些簡單的算術運算:

那如何停止服務呢?可以直接點擊右上角的 X 號——粗暴、壁咚。

安裝 Robo 3T

Robo 3T 提供了對 MongoDB 和 SCRAM-SHA-256(升級的 mongo shell)的支持,是一款輕量級的 MongoDB 客戶端工具。

下載地址如下:

https://robomongo.org/download

最新的版本是 1.3,選擇 zip 格式進行下載,23M 左右。下載完成后,解壓就行了。

包目錄不再一一解釋了,進入 bin 目錄下,雙擊運行 robo3t.exe 文件,啟動 Robo 3T 客戶端。

點擊「Create」創建一個 MongoDB 的連接。

連接成功后,就可以操作 MongoDB 了。

(不過,小伙伴們這時候也不太知道該怎么操作,畢竟 MongoDB 的一些相關概念還不清楚,無從下手啊)

MongoDB 的相關概念

隨著互聯網的極速發展,用戶數據也越來越龐大,NoSQL 數據庫的發展能夠很好地處理這些大的數據,MongoDB 是 NoSQL 數據庫中的一個典型的代表。

說到這,可能有些小伙伴們還不知道 NoSQL 是啥意思,我簡單解釋一下。NoSQL 可不是沒有 SQL 的意思,它實際的含義是 Not Only SQL,也就是“不僅僅是 SQL”,指的是非關系型數據庫,和傳統的關系型數據庫 MySQL、Oracle 不同。

MongoDB 命名源于英文單詞 humongous,意思是「巨大無比」,可以看得出 MongoDB 的野心。MongoDB 的數據以類似于 JSON 格式的二進制文檔存儲:

{name:?"沉默王二",age:?18,hobbies:?["寫作",?"敲代碼"] }

在進行下一步之前,需要先來理解 MongoDB 中的幾個關鍵概念,比如說什么是集合,什么是文檔,什么是字段等等。MongoDB 雖然是非關系型數據庫,但和關系型數據庫非常相似。

看完上面這幅圖(圖片來源于好朋友 macrozheng 的文章),是不是瞬間就清晰了?

在 Java 中使用 MongoDB

有些小伙伴可能會問,“二哥,我是一名 Java 程序員,我該如何在 Java 中使用 MongoDB 呢?”這個問題問得好,這就來,這就來。

第一步,在項目中添加 MongoDB 驅動依賴:

<dependency><groupId>org.mongodb</groupId><artifactId>mongodb-driver-sync</artifactId><version>4.0.3</version> </dependency>

第二步,新建測試類 MongoDBTest:

public?class?MongoDBTest?{public?static?void?main(String[]?args)?{MongoClient?mongoClient?=?MongoClients.create();MongoDatabase?database?=?mongoClient.getDatabase("mydb");MongoCollection<Document>?collection?=?database.getCollection("test");Document?doc?=?new?Document("name",?"沉默王二").append("age",?"18").append("hobbies",?Arrays.asList("寫作",?"敲代碼"));collection.insertOne(doc);System.out.println("集合大小:"?+collection.countDocuments());Document?myDoc?=?collection.find().first();System.out.println("文檔內容:"?+?myDoc.toJson());} }

1)MongoClient 為 MongoDB 提供的客戶端連接對象,不指定主機名和端口號的話,默認就是“localhost”和“27017”。

如果小伙伴想自定義主機名和端口號的話,也可以通過字符串的形式:

MongoClient?mongoClient?=?MongoClients.create("mongodb://localhost:27017");

是不是感覺和 MySQL 的連接字符串挺像的?

2)getDatabase()?方法用于獲取指定名稱的數據庫,如果數據庫已經存在,則直接返回該 DB 對象(MongoDatabase),否則就創建一個再返回(省去了判空的操作,非常人性化)。

3)getCollection()?方法用于獲取指定名稱的文檔對象,如果文檔已經存在,則直接返回該 Document 的集合對象,否則就創建一個再返回(和 getDatabase()方法類似)。

有了文檔對象(MongoCollection)后,就可以往里面添加具體的文檔內容了。

?Document?doc?=?new?Document("name",?"沉默王二").append("age",?"18").append("hobbies",?Arrays.asList("寫作",?"敲代碼"));

Document 對象來源于 org.bson 包下,可以在實例化該對象之后通過 append()方法添加對應的鍵值對,非常方便,就像 String 類的 append()?方法一樣。

有了文檔對象后,就可以通過 insertOne()?方法將文檔添加到集合當中了。

4)countDocuments()?方法用于獲取集合中的文檔數目。

5)要查詢文檔,可以通過 find()?方法,它返回一個 FindIterable 對象,first()?方法可以返回當前集合中的第一個文檔對象。

好了,來看一下程序的輸出結果:

集合大小:1 文檔內容:{"_id":?{"$oid":?"5ebcaa76465cab3f18b93e1a"},?"name":?"沉默王二",?"age":?"18",?"hobbies":?["寫作",?"敲代碼"]}

完全符合我們的預期,perfect!

也可以通過 Robo 3T 查看“mydb”數據庫,結果如下圖所示。

好了,我親愛的小伙伴們,以上就是本文的全部內容了,是不是看完后很想實操一把 MongoDB,趕快行動吧!如果你在學習的過程中遇到了問題,歡迎隨時和我交流,雖然我也是個菜鳥,但我有熱情啊。

另外,如果小伙伴想寫入門級別的文章,這篇就是最好的范例。

推薦閱讀

  • 一行代碼引來的安全漏洞,就讓我們丟失了整個服務器的控制權

  • 怒肝 8 個月源碼,我成為了 Spring 開源貢獻者

  • 讀取模式錯誤,計算引擎操作復雜……面對Hadoop這些問題該如何應對?

  • 從地攤看云計算:規模產業歷程大揭秘

  • 這位超級電腦之父,年近九旬仍不愿退休

  • 阿里云科學家入選計算機頂會HPCA名人堂,他是什么來頭?

  • 中本聰真的轉移了2009年挖出的比特幣嗎?或許不一定!

真香,朕在看了!

總結

以上是生活随笔為你收集整理的MongoDB 入门,我是花了心思的的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。