MongoDB,什么玩意

Windows下安裝和配置

首先到官網(wǎng)下https://www.mongodb.com/
在下載好的文件中3.6目錄下新建立一個data文件夾,在其中新建立db和log文件,在log中建立文件mongo.log用于存儲一些文件和配置,接下來管理員模式下打開命令行中,打開到bin目錄下,輸入mongod --bind_ip 0.0.0.0 --logpath C:\MongoDB\Server\3.6\data\log(你安裝的mongo.log文件目錄) --logappend --dbpath C:\MongoDB\Server\3.6\data\db(你之前建立的db文件夾目錄)--port 27017 --serviceName "MongoDB" --serviceDisplayName "MongoDB" --install配置出一個windows服務(wù),之后建立一個開啟mongodb.bat文件,內(nèi)容為

@echo.服務(wù)啟動......  
@echo off   
@net start MongoDB 
@echo off  
echo.啟動完畢!  
pause

此后每次用管理員運行這個文件,就自動開啟服務(wù),之后在命令行下cd到bin目錄下,鍵入mongo,進入mongodb數(shù)據(jù)庫中

介紹

MongoDB 是由C++語言編寫的,是一個基于分布式文件存儲的開源數(shù)據(jù)庫系統(tǒng)。

mongodb shell

它是一個互動的JavaScript接口MongoDB。您可以使用mongoshell來查詢和更新數(shù)據(jù)以及執(zhí)行管理操作。
一般我們可以通過這個API接口來輸入命令控制數(shù)據(jù)庫。而之前的一些設(shè)置就是為這個接口配置本地主機的端口和服務(wù)環(huán)境
其中的一些數(shù)據(jù)庫增刪減查的基本操作參考官方文檔:https://docs.mongodb.com/manual/reference/mongo-shell/

數(shù)據(jù)庫的數(shù)據(jù)模型

引用模型

例如:把用戶數(shù)據(jù)文檔和用戶地址數(shù)據(jù)文檔分開,通過引用文檔的 id 字段來建立關(guān)系

{
   "_id":ObjectId("52ffc33cd85242f436000001"),
   "contact": "987654321",
   "dob": "01-01-1991",
   "name": "Tom Benzamin",
   "address_ids": [
      ObjectId("52ffc4a5d85242602e000000"),
      ObjectId("52ffc4a5d85242602e000001")
   ]
}
嵌入式模型

上例中嵌入式結(jié)構(gòu)表示為下圖

"_id":ObjectId("52ffc33cd85242f436000001"),
   "contact": "987654321",
   "dob": "01-01-1991",
   "name": "Tom Benzamin",
   "address": [
      {
         "building": "22 A, Indiana Apt",
         "pincode": 123456,
         "city": "Los Angeles",
         "state": "California"
      },
      {
         "building": "170 A, Acropolis Apt",
         "pincode": 456789,
         "city": "Chicago",
         "state": "Illinois"
      }]
} 

mongodb的基本概念

與SQL數(shù)據(jù)庫的概念對比

對應(yīng)術(shù)語

GridFS 用于存儲和恢復(fù)那些超過16M(BSON文件限制)的文件(如:圖片、音頻、視頻等)。GridFS 會將大文件對象分割成多個小的chunk(文件片段),一般為256k/個,每個chunk將作為MongoDB的一個文檔(document)被存儲在chunks集合中。GridFS 用兩個集合來存儲一個文件:fs.files與fs.chunks。每個文件的實際內(nèi)容被存在chunks(二進制數(shù)據(jù))中,和文件有關(guān)的meta數(shù)據(jù)(filename,content_type,還有用戶自定義的屬性)將會被存在files集合中。

數(shù)據(jù)庫的特色

索引

特殊的數(shù)據(jù)結(jié)構(gòu),索引存儲在一個易于遍歷讀取的數(shù)據(jù)集合中,索引是對數(shù)據(jù)庫表中一列或多列的值進行排序的一種結(jié)構(gòu),方便查找

聚合

MongoDB中聚合(aggregate)主要用于處理數(shù)據(jù)(諸如統(tǒng)計平均值,求和等),并返回計算后的數(shù)據(jù)結(jié)果

管道

管道在Unix和Linux中一般用于將當前命令的輸出結(jié)果作為下一個命令的參數(shù)。
對于MongoDB的聚合管道,是將MongoDB文檔在一個管道處理完畢后將結(jié)果傳遞給下一個管道處理。管道操作是可以重復(fù)的。

復(fù)制

復(fù)制

MongoDB復(fù)制是將數(shù)據(jù)同步在多個服務(wù)器的過程。復(fù)制提供了數(shù)據(jù)的冗余備份,并在多個服務(wù)器上存儲數(shù)據(jù)副本,提高了數(shù)據(jù)的可用性, 并可以保證數(shù)據(jù)的安全性。還允許您從硬件故障和服務(wù)中斷中恢復(fù)數(shù)據(jù)。

切片

在Mongodb里面存在另一種集群,就是分片技術(shù),可以滿足MongoDB數(shù)據(jù)量大量增長的需求。當MongoDB存儲海量的數(shù)據(jù)時,一臺機器可能不足以存儲數(shù)據(jù),也可能不足以提供可接受的讀寫吞吐量。這時,我們就可以通過在多臺機器上分割數(shù)據(jù),使得數(shù)據(jù)庫系統(tǒng)能存儲和處理更多的數(shù)據(jù)。


切片
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容