MongoDB 初學者教程:通過簡單的步驟學習 MongoDB

已發表: 2022-08-31

MongoDB 是一個文檔數據庫和領先的開源 NoSQL 數據庫。 它是用 C++ 編寫的,是一個面向文檔的 NoSQL 數據庫,用於大容量數據存儲、內容管理和交付、移動和社交基礎設施、用戶數據管理等。

它由一個數據模型組成,您可以使用它來表示層次關係。 它依賴於帶有可選模式的類 JSON 文檔,並且不使用傳統關係數據庫中使用的行和表。 具有鍵值對的文檔是 MongoDB 中數據的基本單元。

MongoDB 以 JSON 格式存儲數據。 它的高需求主要基於它對任何屬性的索引、複製和高可用性、自動分片、豐富的查詢、快速的就地更新和豐富的社區支持。 讓我們深入了解 mongodb 查詢教程。

目錄

MongoDB 功能

這個面向數據的數據庫的可用性取決於 Mongo DB 的某些完整特性:-

  • 每個數據庫都由進一步包含文檔的集合組成。 這些文檔及其大小和內容可能會根據字段數量的不同而有所不同。
  • 文檔結構基於開發人員如何在他們的程序中構建類和對象。
  • 這些行不需要預定義的架構,因為您可以隨時隨地創建字段。
  • 使用 MongoDB 數據模型,您可以表示用於存儲數組和其他復雜結構的層次關係。
  • MongoDB 環境具有很強的可擴展性。
  • 應用程序對像不需要轉換或映射到數據庫對象。
  • 內部存儲器存儲窗口工作集,可以更輕鬆地訪問數據。
  • 單個對象的結構清晰。
  • 沒有任何復雜的連接。
  • 其深度查詢能力支持對文檔的動態查詢。

此外,請查看我們的數據科學課程以提高自己的技能。

關於 MongoDB 和 RDBMS 你需要知道的事情

MongoDB 是一個面向文檔的跨平台數據庫,可提供高性能、有效的可擴展性和高可用性。 它基於文檔和集合工作。 MongoDB 中的每個數據庫都有其獨特的文件集,理想情況下,單個 MongoDB 服務器具有多個數據庫。

另一方面,Collection 是一組 MongoDB 文檔,相當於 RDBMS 表。 它存在於單個數據庫中,並且不強制執行模式。 集合中的 Documents 可以有不同的字段,並且集合中的所有文檔都具有相關或相似的目的。 一組鍵值對稱為具有動態模式的文檔,其中同一集合中的文檔不需要具有相同的結構或字段集。

您將在下表中找到 RDBMS 術語與 MongoDB 的關係。

關係型數據庫管理系統MongoDB
數據庫數據庫
元組文檔
桌子收藏
表連接嵌入式文檔
柱子場地
首要的關鍵主鍵(MongoDB 提供默認鍵 _id)
數據庫服務器和客戶端
mysqld/甲骨文蒙神
mysql/sqlplus 蒙哥

MongoDB和SQL數據庫之間的區別

MongoDB 比 SQL 更靈活,並提供更好的數據可用性。 它還具有便攜性和可擴展性。 SQL 數據庫以其持久性和一致性而聞名。 因此,最好的數據庫解決方案取決於所涉及的項目類型。

MongoDB 更適合開發管道,而 SQL 數據庫則非常適合可靠的組織數據事務。 MongoDB 非常適合處理和處理非結構化數據。 此 NoSQL 數據庫是提供數據管道和應用程序(例如實時分析)的最佳替代方案之一。

MongoDB 非常適合與物聯網設備和移動/Web 應用程序一起工作。 由於其靈活性和平滑擴展的能力,它正迅速成為全球開發人員的首選。

雖然 SQL 數據庫非常適合處理結構化數據、數據科學和高級組織任務,但 MongoDB 通過有效開發軟件或在線服務來滿足現代開發人員和企業的需求。

如何使用 MongoDB 的示例

存儲嵌套數據結構

在文檔中嵌套對象的能力是 MongoDB 的最大特性之一。 為了將數據嵌入文檔中,開發人員在 MongoDB 中構建數據,而不是將其分解為各種集合。

這是一個例子:-

{_id: ObjectId(“5effaa5662679b5af2c58829”),

電子郵件:“[email protected]”,

名稱:{給定:“Lily”,家庭:“Mona”},

年齡:31,

地址:[{標籤:“家”,

街道:“貝克街 22 1b 號”,

城市:“倫敦”,

狀態:“ENG”,

郵編:“NW1 6XE”,

國家:“英國”},

{標籤:“媽媽”,

街道:“公園街 555 號”,

城市:“湖城”,

省:“安大略省”,

國家:“CA”}]

}

名稱字段是在地址字段中具有給定和姓氏組件的嵌套對象,其中多個地址存儲在一個數組中。 每個地址都可以有不同的字段,以便於存儲其他數據類型。

使用 MongoDB 外殼

MongoDB shell 主要用於導航、操作和檢查文檔數據。 當 MongoDB 在本地機器上運行時,啟動 shell 在標準端口上的 localhost 連接到 MongoDB。 如果您需要連接到 MongoDB Atlas 集群或其他遠程實例,請確保在命令 mongo 之後添加連接字符串。

您將在下面找到快速的 shell 示例:-

列出集合

> 使用我的數據庫;

> 展示收藏;

用戶

帖子

>

列出數據庫

> 顯示數據庫;

管理員0.000GB

配置 0.000GB

本地0.000GB

我的數據庫 0.004GB

>

探索我們的熱門數據科學課程

IIITB 數據科學高級管理研究生課程 商業決策數據科學專業證書課程 亞利桑那大學數據科學理學碩士
IIITB 數據科學高級證書課程 馬里蘭大學數據科學和商業分析專業證書課程 數據科學課程

查找集合中的第一個文檔

> db.users.findOne()

{

“_id”:ObjectId(“5ce45d7606444f199acfba1e”),

“名字”:{給定:“安娜”,家庭:“史密斯”},

“電子郵件”:“電子郵件@example.com”

“年齡”:36

}

>

計算集合中的文檔

> 使用我的數據庫;

> db.users.count()

20234

>

按 ID 查找文檔

> db.users.findOne({_id: ObjectId(“5ce45d7606444f199acfba1e”)})

{

“_id”:ObjectId(“5ce45d7606444f199acfba1e”),

“名字”:{給定:“安娜”,家庭:“史密斯”},

“電子郵件”:“電子郵件@example.com”,

“年齡”:36

}

>

查詢 MongoDB 集合

MongoDB 查詢語言 (MQL) 中的相同語法用於可用於高級查詢的文檔。 您將在下面找到 MongoDB 查詢示例:

查找數量有限的結果

> db.users.find().limit(10)

>

按姓氏查找用戶

> db.users.find({“name.family”: “Smith”}).count()

1

>

請注意,我們將“name.family”括在引號中,因為它在中間有一個點。

按數值範圍查詢文檔

// 所有具有“likes”字段且數值大於 1 的帖子:

> db.post.find({likes: {$gt: 1}})

// 所有點贊數為 0 的帖子

> db.post.find({likes: 0})

// 所有不完全有 1 個讚的帖子

> db.post.find({likes: {$ne: 1}})

按字段排序結果

// 按年齡排序,升序(最小值在前)

> db.user.find().sort({年齡: 1})

{

“_id”:ObjectId(“5ce45d7606444f199acfba1e”),

“名字”:{給定:“亞歷克斯”,家庭:“史密斯”},

“電子郵件”:“電子郵件@example.com”,

“年齡”:27

}

{

_id: ObjectId(“5effaa5662679b5af2c58829”),

電子郵件:“[email protected]”,

姓名:{給定:“Jesse”,家庭:“Xiao”},

年齡:31

}

>

// 按年齡排序,降序(最大值在前)

> db.user.find().sort({年齡: -1})

{

_id: ObjectId(“5effaa5662679b5af2c58829”),

電子郵件:“[email protected]”,

姓名:{給定:“Lilly”,家庭:“Mona”},

年齡:31

}

{

“_id”:ObjectId(“5ce45d7606444f199acfba1e”),

“名字”:{給定:“安娜”,家庭:“史密斯”},

“電子郵件”:“電子郵件@example.com”,

“年齡”:36

}

>

2022 年最值得學習的數據科學技能

SL。 2022 年最值得學習的數據科學技能
1 數據分析課程 推論統計課程
2 假設檢驗程序 邏輯回歸課程
3 線性回歸課程 用於分析的線性代數

結論

MongoDB 的可擴展性使其成為使用最廣泛的數據庫之一,因為它在軟件開發和數據科學領域提供了許多好處。 在這些領域從事職業是一個有利可圖的選擇。 upGrad 的數據科學執行 PG 計劃是您在數據科學和其他相關領域開始職業生涯的好地方。

為什麼 MongoDB 如此容易擴展?

MongoDB 很容易擴展,因為它不是 SQL 數據庫,因為 MongoDB 內部的數據沒有關係耦合。 MongoDB 中的數據以自包含格式存儲,通過將這些文檔分佈在多個系統(節點)上,可以輕鬆進行水平擴展。

MongoDB和MariaDB、MySQL等數據庫系統有什麼區別?

MongoDB 是 NoSQL 數據庫,而 MariaDB 和 MySQL 是 SQL 數據庫。 此外,MongoDB 是一個非關係型數據庫,而另外兩個是關係型數據庫。

為什麼MongoDB如此受歡迎?

MongoDB 是 Web 開發中 MERN 堆棧的重要組成部分。 在 MongoDB 上部署和擴展項目也很容易。 MongoDB以其可擴展性而聞名。 它非常適合任何開發管道。