時間:2024-03-26 14:34作者:下載吧人氣:16
MongoDB是當下較為流行的NoSQL數據庫,它擁有靈活彈性、高可用性、和高效性等優點。要精通MongoDB,就必須要先理解其底層的運行機制。本文將詳細介紹MongoDB的運行機制,包括:MongoDB管理的數據結構,和訪問的查詢路徑。
### 一、MongoDB管理的數據結構
MongoDB管理的數據儲存在BSON(Binary JSON)格式的文檔中,BSON是一種可傳輸的,面向文檔的類型。每一個文檔(document)就包含了鍵值對,可以看成是由字段(field)和值(value)組成的記錄(record),字段名就是鍵,字段值(value)就是值,多個文檔形成一組記錄,該組記錄被稱為collection。MongoDB文檔中的鍵和值有一定的結構,也支持復雜的數據類型,比如XML,JSON等格式的文本,非文本形式的數據,以及函數。
### 二、MongoDB訪問的查詢路徑
MongoDB在處理讀寫數據時,會形成一個查詢路徑的鏈。MongoDB的數據連接處理模式如下:首先用戶發出查詢請求,連接會把命令中的請求信息拆分成一個個細粒度的操作。接著,按照DBCommand會在MongoDB實例中運行,然后就是緩存造就查詢操作到連接中。最后查詢結果返回到用戶處。MongoDB會在查詢路徑中盡可能的使用緩存去提高查詢性能,當有讀/寫更新時,關聯緩存也會及時更新。
### 三、MongoDB支持的操作
MongoDB支持CRUD(增Create,查Retrieve,改Update,刪Delete)和特殊操作的功能。CRUD操作是基本的,而特殊操作則是MongoDB的特有操作,例如MapReduce,GridFS,索引等。MongoDB支持的主要操作如下:
**1. insert()**
insert()操作可以將document添加到數據集中,你可以使用insert()操作對單個文檔或多個文檔添加。
“`js
// 單條數據添加
db.Test.insert(
{
“name” : “John”,
“age” : 25
});
// 批量數據添加
db.Test.insert(
[
{
“name” : “Tina”,
“age” : 21
},
{
“name” : “Joy”,
“age” : 27
}
]);
**2. save()**save()操作可以將文檔保存到數據集中,但是當文檔有相同的主鍵值時,save()會覆蓋此文檔的內容:
```js// 保存數據
db.Test.save({
"name" : "John", "age" : 25
});
**3. find()**
find()操作可以從數據集中構建結果集,它將顯示結果集中文檔的原始格式:
“`js
// 查詢數據
db.Test.find(
{
“name” : “John”
});
**4. update()**
update()操作可用于改變結果集中文檔的值:
```js// 更新數據
db.Test.update({
"name" : "John" },
{ $set:
{ "age" : 26
}});
**5. remove()**
remove()操作可以從數據集中刪除結果集中文檔:
“`js
// 刪除數據
db.Test.remove(
{
“name” : “John”
});
MongoDB使用BSON文檔來管理數據,從而可以使數據儲存更加的靈活、便捷和高效。通過熟悉MongoDB的運行機制,可以更好的操作和使用它。
網友評論