MongoDB基礎知識

一、什麼是MongoDB

MongoDB是一個開源的文檔資料庫,它採用了類似於JSON的BSON數據格式,可以支持複雜數據結構和動態查詢。MongoDB可以減少不必要的關係型數據設計的複雜度,以及自身帶有的分散式特性可以方便本身的擴展。

MongoDB的安裝可以通過官方提供的rpm安裝包,也可以通過源碼編譯進行安裝。

安裝完成後,我們需要開啟mongodb的服務:

sudo service mongod start

二、基本概念

1.資料庫

在MongoDB中,資料庫可以看作是一組集合(Collection)的集合。每個資料庫都有它自己的獨立的許可權和配置。MongoDB支持多資料庫的操作,可以進行不同資料庫之間的跨資料庫操作。

// 使用use命令切換到一個新的資料庫
use test_db 

// 查看當前所有的資料庫
show dbs

// 刪除一個資料庫
db.dropDatabase()

2.集合

集合就是多個文檔的集合,可以看作是關係型資料庫中的表。集合中的每個文檔都是JSON格式的文檔。

// 創建一個集合
db.createCollection('test_collection')

// 查看一個資料庫中所有的集合
show collections

// 刪除一個集合
db.test_collection.drop()

3.文檔

在MongoDB中,文檔是以BSON格式進行存儲的最小數據單位,類似於RDBMS中的行。文檔可以隨意修改、增加和刪除,非常靈活。

db.test_collection.insert({
    "title": "MongoDB實戰",
    "author": "coder",
    "content": "這是一本關於MongoDB實戰的書籍"
})

4.欄位

每個文檔都可以包含零個或更多個欄位,是訪問文檔中單個元素的路徑。欄位可以是字面量、數組、文檔,在一個文檔中,不同的欄位的數據類型可以不同。

db.test_collection.insert({
    "title": "MongoDB實戰",
    "author": "coder",
    "content": "這是一本關於MongoDB實戰的書籍",
    "tags": ["資料庫", "NoSQL"],
    "publishDate": new Date(),
})

三、查詢語句

1.查詢所有記錄

使用find()方法查詢所有記錄。

//查詢所有記錄
db.test_collection.find()

2.條件查詢

使用find()方法和查詢條件進行特定條件的查詢。

// 查找某個author的所有記錄
db.test_collection.find({"author": "coder"})

// 查找三個月內的所有記錄
db.test_collection.find({"publishDate": {"$gte": new Date(new Date().setMonth(new Date().getMonth() - 3))}})

3.限制查詢記錄

使用limit()方法限制查詢返回的記錄條數。

//查詢前5條記錄
db.test_collection.find().limit(5)

4.跳過查詢記錄

使用skip()方法跳過查詢記錄中的前n條記錄。

//查詢第5-10條記錄
db.test_collection.find().skip(4).limit(6)

四、更新操作

1.修改一條記錄

使用update()方法修改一條記錄。如果不存在,則新建一條。

// 修改第一條記錄的title為『MongoDB從入門到放棄』
db.test_collection.update({"author": "coder"}, {"$set": {"title": "MongoDB從入門到放棄"}}, {"multi": false, "upsert": false})

2.修改多條記錄

如果需要修改多條記錄,則需要設置multi為true。

// 修改所有記錄的title為『MongoDB從入門到出家』
db.test_collection.update({"author": "coder"}, {"$set": {"title": "MongoDB從入門到出家"}}, {"multi": true, "upsert": false})

五、刪除操作

1.刪除一條記錄

使用remove()方法刪除一條記錄。

// 刪除title為『MongoDB從入門到出家』的記錄
db.test_collection.remove({"title": "MongoDB從入門到出家"})

2.刪除多條記錄

如果需要刪除多條記錄,則需要給remove()方法添加multi參數。

// 刪除所有author為『coder』的記錄
db.test_collection.remove({"author": "coder"}, {"multi": true})

六、索引

在MongoDB中,索引和關係型資料庫中的索引類似,可以提高查詢效率。MongoDB中默認會為_id欄位自動創建索引。

1.創建索引

可以使用ensureIndex()方法來為一個欄位創建索引。

// 為title欄位創建索引
db.test_collection.ensureIndex({"title": 1})

2.查看索引

使用getIndexes()方法查看一個集合中所有的索引。

// 查看一個集合中所有的索引
db.test_collection.getIndexes()

3.刪除索引

通過dropIndexes()可以刪除一個已經創建的索引。

// 刪除title欄位的索引
db.test_collection.dropIndex({"title": 1})

七、備份與恢復

1.備份數據

使用mongodump命令可以備份一個mongodb資料庫。

// 備份資料庫
mongodump --host 127.0.0.1 --port 27017 --out /data/backups/my_test_db/

2.恢複數據

使用mongorestore命令可以恢復一個mongodb資料庫。

// 恢復資料庫
mongorestore --host 127.0.0.1 --port 27017 /data/backups/my_test_db/

八、總結

以上是MongoDB的一些基礎知識,包括資料庫、集合、文檔、欄位、查詢語句、更新操作、刪除操作、索引、備份與恢復等。MongoDB的使用非常靈活,可以根據實際需要進行不同的配置。我們需要在使用過程中深入學習,在實際應用中進行探索。

原創文章,作者:JQPJG,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/362641.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
JQPJG的頭像JQPJG
上一篇 2025-02-27 19:28
下一篇 2025-02-27 19:28

相關推薦

  • Python元祖排序:從基礎知識到高級應用

    Python元祖是一種不可變序列,通常用於將一組數據綁定在一起。元祖之間經常需要排序,本文將從基礎知識到高級應用,為你詳細講解Python元祖排序。 一、排序方法 Python提供…

    編程 2025-04-28
  • 計算機二級基礎知識題庫

    計算機二級基礎知識題庫考試為計算機二級考試的必修科目之一,其中包含了計算機的基本知識以及應用能力等內容。本文將從題庫概述、考試內容、備考建議以及編程實例等幾個方面進行介紹,希望對廣…

    編程 2025-04-27
  • Python連接MongoDB資料庫

    MongoDB是一個流行的開源、非關係型、文檔型資料庫。Python具有簡單、易學的語法、廣泛的應用能力,因此它很適合連接MongoDB資料庫。本文將從以下幾個方面詳細討論Pyth…

    編程 2025-04-25
  • MongoDB使用詳解

    一、什麼是MongoDB? MongoDB是一個基於分散式文件存儲的NoSQL資料庫。 與傳統關係型資料庫不同,MongoDB沒有固定表結構,採用文檔存儲方式。文檔是JSON格式的…

    編程 2025-04-24
  • Linux MongoDB安裝指南

    一、安裝前的準備工作 在安裝 MongoDB 之前,我們需要進行以下準備工作: 1、檢查是否已經安裝了 MongoDB。可以通過運行命令:mongod –version…

    編程 2025-04-23
  • MongoDB連接池詳解

    MongoDB連接池是一個重要的組件,可以優化MongoDB的訪問性能和資源利用率。在本文中,我們從多個方面探討MongoDB連接池的配置、錯誤、模式、大小、參數設置和代碼實現步驟…

    編程 2025-04-23
  • Linux下安裝MongoDB教程

    一、下載MongoDB MongoDB是一個跨平台、面向文檔的NoSQL資料庫管理系統。首先,我們需要下載MongoDB的安裝包。 1、打開MongoDB官網(https://ww…

    編程 2025-04-23
  • 軟體測試理論基礎知識

    一、測試概述 軟體測試是指在已知測試用例的前提下,檢查軟體是否滿足規定的功能和質量要求的過程。 軟體測試的目的是要發現並糾正可能存在的缺陷。它涉及軟體開發周期的各個階段,從需求分析…

    編程 2025-04-23
  • Spring Boot集成MongoDB

    一、Spring Boot集成MongoDB多數據源 在Spring Boot中集成MongoDB多數據源需要配置多個MongoTemplate和多個MongoDbFactory。…

    編程 2025-04-23
  • MongoDB BSON介紹

    一、BSON的概念及優勢 BSON(Binary JSON)是一種二進位的JSON格式。與JSON一樣,BSON也是一種用於數據交換的文檔存儲格式。但是,BSON比JSON更具優勢…

    編程 2025-04-22

發表回復

登錄後才能評論