MongoDB中文學(xué)習(xí)入門教程(包括安裝配置和增刪改查)
1. MongoDB簡介
MongoDB是一種面向文檔的無結(jié)構(gòu)化數(shù)據(jù)庫系統(tǒng),能夠存儲(chǔ)和處理大規(guī)模的半結(jié)構(gòu)化和無結(jié)構(gòu)化數(shù)據(jù)。它在NoSQL數(shù)據(jù)庫中屬于最常用的一種。與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫不同,MongoDB不需要事先定義數(shù)據(jù)的結(jié)構(gòu),可以減少數(shù)據(jù)建模的復(fù)雜性。MongoDB使用JSON
格式的文檔存儲(chǔ)數(shù)據(jù),這使得它非常適合存儲(chǔ)動(dòng)態(tài)數(shù)據(jù)和大數(shù)據(jù)量的數(shù)據(jù)。 MongoDB是完全免費(fèi)的,在開源社區(qū)上廣受歡迎。
1.1 MongoDB的數(shù)據(jù)結(jié)構(gòu)
在MongoDB中,數(shù)據(jù)存儲(chǔ)在文檔(Document
)中,一個(gè)文檔可以看作是一個(gè)鍵值對(duì)的集合。每個(gè)鍵值對(duì)稱為一個(gè)字段(field),一個(gè)文檔可以包含不同數(shù)量和類型的字段。MongoDB的文檔格式為BSON
,它是JSON
的一種二進(jìn)制形式,能夠更高效地進(jìn)行解析和傳輸。下面是一個(gè)簡單的MongoDB文檔示例:
{ "_id": ObjectId("5cf39d0b7ad3cd1de5c1dd0a"), "name": "張三", "age": 25, "address": { "city": "北京", "street": "朝陽區(qū)" } }
在這個(gè)文檔中,_id
是MongoDB自動(dòng)生成的唯一標(biāo)識(shí)符,name
和age
是字段名,它們的值分別為"張三"和25,address
是一個(gè)子文檔,包含了city
和street
兩個(gè)字段。
1.2 MongoDB的優(yōu)點(diǎn)
相對(duì)于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,MongoDB具有以下優(yōu)點(diǎn):
靈活性:MongoDB不需要事先定義數(shù)據(jù)模式,數(shù)據(jù)模式可以動(dòng)態(tài)改變。
可擴(kuò)展性:MongoDB支持分布式部署,可以在多個(gè)節(jié)點(diǎn)之間復(fù)制數(shù)據(jù)。
高性能:MongoDB使用BSON
格式存儲(chǔ)數(shù)據(jù),能夠更高效地進(jìn)行讀取和寫入。
易部署:MongoDB的安裝和配置非常簡單,只需要下載并解壓縮,不需要進(jìn)行復(fù)雜的設(shè)置。
2. MongoDB的安裝和配置
2.1 下載MongoDB
在安裝MongoDB之前,首先需要從官方網(wǎng)站下載MongoDB的安裝包。
下載頁面地址:https://www.mongodb.com/download-center/community
在下載頁面中,選擇對(duì)應(yīng)的操作系統(tǒng)和版本,然后下載并解壓縮安裝包。
2.2 配置MongoDB
在下載并解壓縮MongoDB安裝包后,我們需要對(duì)MongoDB進(jìn)行配置。
MongoDB的配置文件為mongod.cfg
,該文件默認(rèn)位于MongoDB的安裝目錄下。我們可以修改該文件的一些配置選項(xiàng)來調(diào)整MongoDB的運(yùn)行方式。
其中一些常見的選項(xiàng)包括:
dbpath
:MongoDB數(shù)據(jù)存儲(chǔ)路徑。
logpath
:MongoDB日志文件路徑。
port
:MongoDB服務(wù)監(jiān)聽的端口號(hào)。
這里以dbpath
為例,修改MongoDB的數(shù)據(jù)存儲(chǔ)路徑。
打開mongod.cfg
文件,找到storage
配置項(xiàng),加入以下內(nèi)容:
storage: dbPath: /data/db
其中/data/db
為指定的數(shù)據(jù)存儲(chǔ)路徑。
保存該文件后,我們可以啟動(dòng)MongoDB服務(wù)。
2.3 啟動(dòng)MongoDB服務(wù)
啟動(dòng)MongoDB服務(wù)的方法有兩種:
使用命令行啟動(dòng)
使用Windows服務(wù)啟動(dòng)
這里我們以命令行方式啟動(dòng)MongoDB服務(wù)。
進(jìn)入MongoDB安裝目錄的bin
子目錄,執(zhí)行以下命令:
./mongod
此時(shí),MongoDB服務(wù)就已經(jīng)啟動(dòng)了。
可以使用以下命令檢查MongoDB服務(wù)是否啟動(dòng):
./mongo
如果出現(xiàn)下面的信息,則說明MongoDB服務(wù)已經(jīng)成功啟動(dòng):
MongoDB shell version v4.0.0 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: v4.0.0
3. MongoDB的基本操作
3.1 插入文檔
我們可以使用insertOne()
方法來向MongoDB數(shù)據(jù)庫中插入一個(gè)文檔:
db.collection('users').insertOne({ name: '張三', age: 25, address: { city: '北京', street: '朝陽區(qū)' } });
其中collection()
方法用于指定要操作的集合(類似于關(guān)系型數(shù)據(jù)庫中的表),insertOne()
方法用于插入一個(gè)文檔。
3.2 查詢文檔
我們可以使用find()
方法來查詢MongoDB數(shù)據(jù)庫中的文檔:
db.collection('users').find({ age: {'$gte': 18} });
其中find()
方法用于查詢文檔,age: {'$gte': 18}
表示查詢年齡大于或等于18歲的文檔。查詢結(jié)果將會(huì)得到一個(gè)光標(biāo)(Cursor),我們可以通過forEach()
方法遍歷光標(biāo)并輸出查詢結(jié)果:
db.collection('users').find({ age: {'$gte': 18} }).forEach((doc) => { console.log(doc); });
3.3 更新文檔
我們可以使用updateOne()
方法來更新一個(gè)文檔:
db.collection('users').updateOne({ name: '張三' }, { $set: {age: 26} });
其中updateOne()
方法用于更新文檔,第一個(gè)參數(shù)表示要更新的文檔,第二個(gè)參數(shù)表示要更新的字段和值,$set
為更新操作符。
3.4 刪除文檔
我們可以使用deleteOne()
方法來刪除一個(gè)文檔:
db.collection('users').deleteOne({ name: '張三' });
其中deleteOne()
方法用于刪除文檔,參數(shù)表示要?jiǎng)h除的文檔。
4. 總結(jié)
本文主要介紹了MongoDB的基本知識(shí)和操作。MongoDB是一種面向文檔的無結(jié)構(gòu)化數(shù)據(jù)庫系統(tǒng),具有靈活性、可擴(kuò)展性和高性能等優(yōu)點(diǎn)。安裝和配置MongoDB也非常簡單,使用MongoDB的API進(jìn)行操作也非常方便。在實(shí)際使用中,MongoDB可以作為常規(guī)數(shù)據(jù)存儲(chǔ)或NoSQL解決方案的替代品,應(yīng)用廣泛。
到此這篇關(guān)于MongoDB中文學(xué)習(xí)入門教程(包括安裝配置和增刪改查)的文章就介紹到這了,更多相關(guān)MongoDB入門學(xué)習(xí)教程內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mongodb eval 執(zhí)行服務(wù)器端腳本
在MongoDB的服務(wù)器端可以通過db.eval函數(shù)來執(zhí)行javascript腳本,如我們可以定義一個(gè)javascript函數(shù),然后通過db.eval在服務(wù)器端來運(yùn)行!我們前面其實(shí)也接觸過在服務(wù)器段運(yùn)行一個(gè)預(yù)定義的javascript腳本的情況,如在$where查詢,執(zhí)行mapreduce任務(wù)等。2015-05-05Mongodb數(shù)據(jù)庫的備份與恢復(fù)操作實(shí)例
這篇文章主要介紹了Mongodb數(shù)據(jù)庫的備份與恢復(fù)操作實(shí)例,本文講解使用命令在控制臺(tái)執(zhí)行實(shí)現(xiàn)Mongodb的備份與恢復(fù)操作,需要的朋友可以參考下2015-01-01Spring Boot中使用MongoDB數(shù)據(jù)庫的方法
MongoDB是一個(gè)高性能,開源,無模式的,基于分布式文件存儲(chǔ)的文檔型數(shù)據(jù)庫,由C++語言編寫,其名稱來源取自“humongous”,是一種開源的文檔數(shù)據(jù)庫──NoSql數(shù)據(jù)庫的一種。這篇文章主要介紹了Spring Boot中使用MongoDB數(shù)據(jù)庫的方法,需要的朋友可以參考下2017-12-12mongodb增量備份腳本的實(shí)現(xiàn)和原理詳解
MongoDB本身不支持增量備份,所以這里介紹我找到的方法,下面這篇文章主要給大家介紹了關(guān)于mongodb增量備份腳本的實(shí)現(xiàn)和原理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-09-09?PostgreSQL?與MongoDB使用對(duì)比分析
這篇文章主要介紹了為什么?PostgreSQL?能代替?MongoDB?,需要的朋友可以參考下2023-12-12Robo可視化mongoDb實(shí)現(xiàn)操作解析
這篇文章主要介紹了Robo可視化mongoDb實(shí)現(xiàn)操作解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12