MongoDB 初學者教程:通過簡單的步驟學習 MongoDB
已發表: 2022-08-31MongoDB 是一個文檔數據庫和領先的開源 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以其可擴展性而聞名。 它非常適合任何開發管道。