通過這個教程,我們將學習如下內容:-
什么是MongoDB?MongoDB功能MongoDB示例演示MongoDB架構的關鍵組件為什么要使用MongoDBMongoDB中的數據建模MongoDB和RDBMS之間的區別# 什么是MongoDB?MongoDB是面向文檔的NoSQL數據庫,用于大量數據存儲。MongoDB是一個在2000年代中期問世的數據庫。屬于NoSQL數據庫的類別。# MongoDB功能
1. 每個數據庫都包含集合,而集合又包含文檔。每個文檔可以具有不同數量的字段。每個文檔的大小和內容可以互不相同。
文檔結構更符合開發人員如何使用各自的編程語言構造其類和對象。開發人員經常會說他們的類不是行和列,而是具有鍵值對的清晰結構。從NoSQL數據庫的簡介中可以看出,行(或在MongoDB中調用的文檔)不需要預先定義架構。相反,可以動態創建字段。MongoDB中可用的數據模型使我們可以更輕松地表示層次結構關系,存儲數組和其他更復雜的結構。可伸縮性– MongoDB環境具有很高的可伸縮性。全球各地的公司已經定義了自己的集群,其中一些集群運行著100多個節點,數據庫中包含大約數百萬個文檔.# MongoDB示例以下示例展示在MongoDB中如何建立文檔模型。
_id字段由MongoDB添加,以唯一標識集合中的文檔。請注意,RDBMS中的訂單數據(OrderID,Product和Quantity)通常將存儲在單獨的表中,而在MongoDB中,這些數據實際上是作為嵌入式文檔存儲在集合本身中的。這是MongoDB中數據建模方式的主要差異之一。
MongoDB架構的關鍵組件下面是MongoDB中使用的一些常用術語
_id –這是每個MongoDB文檔中必填的字段。_id字段表示MongoDB文檔中的唯一值。_id字段類似于文檔的主鍵。如果創建的新文檔中沒有_id字段,MongoDB將自動創建該字段。因此,例如,如果我們看到上述客戶表的示例,Mongo DB將為集合中的每個文檔添加24位唯一標識符。集合 –這是MongoDB文檔的分組。集合等效于在任何其他RDMS(例如Oracle或MS SQL)中創建的表。集合存在于單個數據庫中。從介紹中可以看出,集合不強制執行任何結構。游標 –這是指向查詢結果集的指針。客戶可以遍歷游標以檢索結果。數據庫 –這是像RDMS中那樣的集合容器,其中是表的容器。每個數據庫在文件系統上都有其自己的文件集。MongoDB服務器可以存儲多個數據庫。文檔 -MongoDB集合中的記錄基本上稱為文檔。文檔包含字段名稱和值。字段 -文檔中的名稱/值對。一個文檔具有零個或多個字段。字段類似于關系數據庫中的列。
下圖顯示了帶有鍵值對的字段的示例。如下的例子中,CustomerID和11是文檔中定義的鍵值對之一。
JSON –JavaScript Object Notation) 是一種輕量級的數據交換格式。這是一種可讀行高易于解析的純文本格式,用于表達結構化數據。目前,許多編程語言都支持JSON。
簡要說明一下_id字段和常規collection字段之間的主要區別。_id字段用于唯一標識集合中的文檔,MongoDB在創建集合時會自動添加_id字段。
為什么要使用MongoDB?
以下是一些為什么應該開始使用MongoDB的原因
面向文檔的–由于MongoDB是NoSQL類型的數據庫,它不是以關系類型的格式存儲數據,而是將數據存儲在文檔中。這使得MongoDB非常靈活,可以適應實際的業務環境和需求。臨時查詢-MongoDB支持按字段,范圍查詢和正則表達式搜索。可以查詢返回文檔中的特定字段。索引-可以創建索引以提高MongoDB中的搜索性能。MongoDB文檔中的任何字段都可以建立索引。復制-MongoDB可以提供副本集的高可用性。副本集由兩個或多個mongo數據庫實例組成。每個副本集成員可以隨時充當主副本或輔助副本的角色。主副本是與客戶端交互并執行所有讀/寫操作的主服務器。輔助副本使用內置復制維護主數據的副本。當主副本發生故障時,副本集將自動切換到輔助副本,然后它將成為主服務器。負載平衡-MongoDB使用分片的概念,通過在多個MongoDB實例之間拆分數據來水平擴展。MongoDB可以在多臺服務器上運行,以平衡負載或復制數據,以便在硬件出現故障時保持系統正常運行。
MongoDB中的數據建模從“簡介”部分可以看出,MongoDB中的數據具有靈活的架構。與SQL數據庫不同,在SQL數據庫中必須在插入數據之前聲明表的架構,而MongoDB的集合不會強制執行文檔結構。這種靈活性使MongoDB如此強大。
在Mongo中對數據建模時,請記住以下幾點
應用程序的需求是什么–查看應用程序的業務需求,并查看應用程序所需的數據和數據類型。基于此,確保相應地確定文檔的結構。什么是數據檢索模式–如果我們可能使用大量查詢操作,則可以考慮在數據模型中使用索引來提高查詢效率。數據庫中是否頻繁發生插入,更新和刪除操作–如果數據建模設計需要重新考慮使用索引或合并分片,以提高整體MongoDB環境的效率。MongoDB和RDBMS之間的區別
下面是MongoDB和RDBMS之間的一些關鍵術語差異
除了常見術語的差異,還包括其他一些差異:
關系數據庫以強制執行數據完整性而聞名。這不是MongoDB中的明確要求。RDBMS要求首先對數據進行規范化,以便它可以防止孤立記錄和重復數據的規范化,然后又需要更多表,這將導致更多表關聯,從而需要更多鍵和索引。
隨著數據庫的增長,性能可能開始成為問題。同樣,這不是MongoDB中的明確要求。MongoDB靈活,不需要先對數據進行規范化。分享干貨,資料:關注公眾號【python社區營】
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的laravel mongodb如何声明数据类型_什么是MongoDB?简介,架构,功能和示例的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。