」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > SQL 已死?開始使用 mongoDB

SQL 已死?開始使用 mongoDB

發佈於2024-08-05
瀏覽:917

SQL is Dead? Get Started with mongoDB

什麼是 MongoDB:

MongoDB是一個非關係型資料庫,這表示資料儲存為集合。

MongoDB 也支援 BSON(二進位 JSON),這是一種二進位編碼形式的 JSON,允許使用其他資料類型,例如二進位、十進位、物件 ID 等。

MongoDB 有自己的查詢語言,基於 JSON 和 JavaScript 語法,用於查詢,MongoDB 是一個非關聯式資料庫,這表示資料儲存為集合,每個文件代表一筆記錄,每個欄位代表一個值。

安裝 MongoDB?

登入後第一次登入您的 mongoDB 帳戶,根據您的要求為您的資料庫建立新叢集。如果初學者想學習 mongoDB,mongoDB 還為他們提供免費叢集。 :)

安裝步驟:

套件管理器安裝:

  • 更新軟體包清單:sudo apt update(基於 Debian 的系統)或等效指令。
  • 安裝 MongoDB: sudo apt install -y mongodb-org (對於基於 Debian 的系統)或其他套件管理器的等效命令。
  • 啟動 MongoDB 服務: sudo systemctl start mongod。
  • 啟用 MongoDB 在啟動時啟動: sudo systemctl enable mongod。

雲端安裝(MongoDB Atlas):

  • 註冊或登入 MongoDB Atlas。
  • 依照指導步驟建立集群。
  • 配置安全設定並連接您的應用程式。

(可選)安裝 MongoDB Compass 或其他管理工具,以更輕鬆地進行資料庫管理和視覺化。

MongoDB 中的基本 CRUD?

首先,確保 MongoDB 已安裝並正在運作。您可以使用 MongoDB shell 或 MongoDB 用戶端(例如 MongoDB Compass)連線到 MongoDB。

在 MongoDB 中,資料庫和集合是在首次儲存資料時隱含地建立的。若要切換到特定資料庫或明確建立資料庫,請使用下列命令:(use mydatabase)

要將資料插入集合(相當於關聯式資料庫中的表格),請使用 insertOne() 或 insertMany() 方法:

// Insert a single document into a collection
db.users.insertOne({ name: "John Doe", age: 30, email: "[email protected]" });

// Insert multiple documents into a collection
db.users.insertMany([
    { name: "Jane Smith", age: 25, email: "[email protected]" },
    { name: "Michael Johnson", age: 40, email: "[email protected]" }
]);

閱讀(查找文件)
若要從集合中檢索數據,請使用具有可選查詢條件的 find() 方法:

// Find all documents in a collection
db.users.find();

// Find documents matching specific criteria (e.g., find users older than 35)
db.users.find({ age: { $gt: 35 } });

// Find a single document by its _id
db.users.findOne({ _id: ObjectId("insert-id-here") });

更新(更新文件)
若要更新集合中的文檔,請使用 updateOne() 或 updateMany() 方法:

// Update a single document matching a query
db.users.updateOne(
    { name: "John Doe" },
    { $set: { age: 31, email: "[email protected]" } }
);

// Update multiple documents matching a query
db.users.updateMany(
    { age: { $lt: 30 } },
    { $set: { status: "inactive" } }
);

刪除(刪除文件)
若要從集合中刪除文檔,請使用deleteOne() 或deleteMany() 方法:

// Delete a single document matching a query
db.users.deleteOne({ name: "John Doe" });

// Delete multiple documents matching a query
db.users.deleteMany({ status: "inactive" });

使用 MongoDB 的優點:

  • 適用於架構和關係隨時間變化的非結構化和動態資料。
  • MongoDB 提供了更大的簡單性和敏捷性,因為它不需要預先定義的模式,從而允許更靈活和更具表現力的資料模型。
  • 可擴展且高效能,它可以輕鬆管理大量不同的資料並將其分佈在多個伺服器上。

感謝您閱讀這篇文章,以了解更多類似內容請關注我的帳戶,如果您在評論部分有建議,請告訴我。

版本聲明 本文轉載於:https://dev.to/nikhil27b/sql-is-dead-get-started-with-mongodb-4dc3?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • \“(1)vs.(;;):編譯器優化是否消除了性能差異?\”
    \“(1)vs.(;;):編譯器優化是否消除了性能差異?\”
    答案: 在大多數現代編譯器中,while(1)和(1)和(;;)之間沒有性能差異。編譯器: perl: 1 輸入 - > 2 2 NextState(Main 2 -E:1)V-> 3 9 Leaveloop VK/2-> A 3 toterloop(next-> 8 last-> 9 ...
    程式設計 發佈於2025-04-25
  • 為什麼在我的Linux服務器上安裝Archive_Zip後,我找不到“ class \” class \'ziparchive \'錯誤?
    為什麼在我的Linux服務器上安裝Archive_Zip後,我找不到“ class \” class \'ziparchive \'錯誤?
    Class 'ZipArchive' Not Found Error While Installing Archive_Zip on Linux ServerSymptom:When attempting to run a script that utilizes the ZipAr...
    程式設計 發佈於2025-04-25
  • 如何克服PHP的功能重新定義限制?
    如何克服PHP的功能重新定義限制?
    克服PHP的函數重新定義限制在PHP中,多次定義一個相同名稱的函數是一個no-no。嘗試這樣做,如提供的代碼段所示,將導致可怕的“不能重新列出”錯誤。 但是,PHP工具腰帶中有一個隱藏的寶石:runkit擴展。它使您能夠靈活地重新定義函數。 runkit_function_renction_...
    程式設計 發佈於2025-04-25
  • 為什麼HTML無法打印頁碼及解決方案
    為什麼HTML無法打印頁碼及解決方案
    無法在html頁面上打印頁碼? @page規則在@Media內部和外部都無濟於事。 HTML:Customization:@page { margin: 10%; @top-center { font-family: sans-serif; font-weight: ...
    程式設計 發佈於2025-04-25
  • 您可以使用CSS在Chrome和Firefox中染色控制台輸出嗎?
    您可以使用CSS在Chrome和Firefox中染色控制台輸出嗎?
    在javascript console 中顯示顏色是可以使用chrome的控制台顯示彩色文本,例如紅色的redors,for for for for錯誤消息? 回答是的,可以使用CSS將顏色添加到Chrome和Firefox中的控制台顯示的消息(版本31或更高版本)中。要實現這一目標,請使用以下...
    程式設計 發佈於2025-04-25
  • 在Python中如何創建動態變量?
    在Python中如何創建動態變量?
    在Python 中,動態創建變量的功能可以是一種強大的工具,尤其是在使用複雜的數據結構或算法時,Dynamic Variable Creation的動態變量創建。 Python提供了幾種創造性的方法來實現這一目標。 利用dictionaries 一種有效的方法是利用字典。字典允許您動態創建密鑰並...
    程式設計 發佈於2025-04-25
  • 如何避免Go語言切片時的內存洩漏?
    如何避免Go語言切片時的內存洩漏?
    ,a [j:] ...雖然通常有效,但如果使用指針,可能會導致內存洩漏。這是因為原始的備份陣列保持完整,這意味著新切片外部指針引用的任何對象仍然可能佔據內存。 copy(a [i:] 對於k,n:= len(a)-j i,len(a); k
    程式設計 發佈於2025-04-25
  • 如何處理PHP文件系統功能中的UTF-8文件名?
    如何處理PHP文件系統功能中的UTF-8文件名?
    在PHP的Filesystem functions中處理UTF-8 FileNames 在使用PHP的MKDIR函數中含有UTF-8字符的文件很多flusf-8字符時,您可能會在Windows Explorer中遇到comploreer grounder grounder grounder gro...
    程式設計 發佈於2025-04-25
  • 在JavaScript中如何獲取實際渲染的字體,當CSS字體屬性未定義時?
    在JavaScript中如何獲取實際渲染的字體,當CSS字體屬性未定義時?
    Accessing Actual Rendered Font when Undefined in CSSWhen accessing the font properties of an element, the JavaScript object.style.fontFamily and objec...
    程式設計 發佈於2025-04-25
  • 如何在php中使用捲髮發送原始帖子請求?
    如何在php中使用捲髮發送原始帖子請求?
    如何使用php 創建請求來發送原始帖子請求,開始使用curl_init()開始初始化curl session。然後,配置以下選項: curlopt_url:請求 [要發送的原始數據指定內容類型,為原始的帖子請求指定身體的內容類型很重要。在這種情況下,它是文本/平原。要執行此操作,請使用包含以下標頭...
    程式設計 發佈於2025-04-25
  • 大批
    大批
    [2 數組是對象,因此它們在JS中也具有方法。 切片(開始):在新數組中提取部分數組,而無需突變原始數組。 令ARR = ['a','b','c','d','e']; // USECASE:提取直到索引作...
    程式設計 發佈於2025-04-25
  • 在PHP中如何高效檢測空數組?
    在PHP中如何高效檢測空數組?
    在PHP 中檢查一個空數組可以通過各種方法在PHP中確定一個空數組。如果需要驗證任何數組元素的存在,則PHP的鬆散鍵入允許對數組本身進行直接評估:一種更嚴格的方法涉及使用count()函數: if(count(count($ playerList)=== 0){ //列表為空。 } 對...
    程式設計 發佈於2025-04-25
  • 如何正確使用與PDO參數的查詢一樣?
    如何正確使用與PDO參數的查詢一樣?
    在pdo 中使用類似QUERIES在PDO中的Queries時,您可能會遇到類似疑問中描述的問題:此查詢也可能不會返回結果,即使$ var1和$ var2包含有效的搜索詞。錯誤在於不正確包含%符號。 通過將變量包含在$ params數組中的%符號中,您確保將%字符正確替換到查詢中。沒有此修改,PD...
    程式設計 發佈於2025-04-25
  • 哪種方法更有效地用於點 - 填點檢測:射線跟踪或matplotlib \的路徑contains_points?
    哪種方法更有效地用於點 - 填點檢測:射線跟踪或matplotlib \的路徑contains_points?
    在Python Matplotlib's path.contains_points FunctionMatplotlib's path.contains_points function employs a path object to represent the polygon.它...
    程式設計 發佈於2025-04-25
  • 人臉檢測失敗原因及解決方案:Error -215
    人臉檢測失敗原因及解決方案:Error -215
    錯誤處理:解決“ error:( - 215)!empty()in Function openCv in Function MultSiscale中的“檢測”中的錯誤:在功能檢測中。”當Face Cascade分類器(即面部檢測至關重要的組件)未正確加載時,通常會出現此錯誤。 要解決此問題,必...
    程式設計 發佈於2025-04-25

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3