Node.js中Mongodb數(shù)據(jù)庫(kù)操作方法(最新推薦)
MongoDB
MongoDB是什么?
MongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)是什么?
數(shù)據(jù)庫(kù)(DataBase)是按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的應(yīng)用程序(軟件)
數(shù)據(jù)庫(kù)作用?
對(duì)數(shù)據(jù)進(jìn)行增、刪、改、查
數(shù)據(jù)庫(kù)特點(diǎn)?
- 速度更快(一些數(shù)據(jù)庫(kù)有特定的結(jié)構(gòu),可以加快訪問(wèn))
- 擴(kuò)展性更強(qiáng)(多數(shù)據(jù)庫(kù)節(jié)點(diǎn))
- 安全姓更強(qiáng)(加密)
為什么選Mongodb?
操作魚(yú)js類似,容易上手,學(xué)習(xí)成本低
核心概念
Mongodb中有三個(gè)重要概念:
- 速度更快(一些數(shù)據(jù)庫(kù)有特定的結(jié)構(gòu),可以加快訪問(wèn))
- 擴(kuò)展性更強(qiáng)(多數(shù)據(jù)庫(kù)節(jié)點(diǎn))
- 安全姓更強(qiáng)(加密)
理解三者關(guān)系
db.json可以理解成一個(gè)數(shù)據(jù)庫(kù),一個(gè)數(shù)據(jù)庫(kù)服務(wù)下可以創(chuàng)建N個(gè)數(shù)據(jù)庫(kù),它們之間不會(huì)共享任何數(shù)據(jù)。- (
json文件中的)屬性(accounts,users)所對(duì)應(yīng)的數(shù)組信息,就是集合,每個(gè)集合存儲(chǔ)著一類特定的數(shù)據(jù),如accounts集合存儲(chǔ)了與賬戶相關(guān)的記錄,而 users 集合則存儲(chǔ)了用戶的信息。 accounts這個(gè)集合中有很多對(duì)象,每一個(gè)對(duì)象就是一個(gè)文檔(每個(gè)文檔是一個(gè)獨(dú)立的數(shù)據(jù)單元,包含多個(gè)鍵值對(duì),每個(gè)文檔中的鍵值對(duì)(例如 “id”: “3-YLju5f3”)是一個(gè)字段)
{
"accounts": [
{
"id": "3-YLju5f3",
"title": "買電腦",
"time": "2023-02-08",
"type": "-1",
"account": "5500",
"remarks": "為了上網(wǎng)課"
},
{
"id": "3-YLju5f4",
"title": "請(qǐng)女朋友吃飯",
"time": "2023-02-08",
"type": "-1",
"account": "214",
"remarks": "情人節(jié)聚餐"
},
{
"id": "mRQiD4s3K",
"title": "發(fā)工資",
"time": "2023-02-19",
"type": "1",
"account": "4396",
"remarks": "終于發(fā)工資啦!~~"
}
],
"users":[
{
"id": 1,
"name": "zhangsan",
"age": 18
},
{
"id": 2,
"name": "lisi",
"age": 20
},
{
"id": 3,
"name": "wangwu",
"age": 22
}
]
}Mongodb服務(wù)
下載安裝
Mongodb下載地址:https://www.mongodb.com/try/download/community,有msi和壓縮包可以選,本次下載是采用壓縮包形式。
從MongoDB 6.0開(kāi)始,官方推薦使用MongoDB Shell (mongosh) 作為新的命令行工具,而不是傳統(tǒng)的mongo.exe。
Mongosh下載地址:https://www.mongodb.com/try/download/shell?spm=5176.28103460.0.0.297c5d27VMftbK
Mongodb和Mongosh建議都解壓在C盤下的Program Files中,并且在C盤文件中,創(chuàng)建data文件夾,再在data文件夾中創(chuàng)建db文件夾作為Mongodb的默認(rèn)文件夾。
// 啟動(dòng)服務(wù) mongod // or mongod --dbpath "C:\data\db // 啟動(dòng) MongoDB Shell 并連接到 MongoDB 實(shí)例 mongosh
命令行交互
數(shù)據(jù)庫(kù)命令
// 顯示所有的數(shù)據(jù)庫(kù)
show dbs
// 切換指定數(shù)據(jù)庫(kù)
use 數(shù)據(jù)庫(kù)名
// 刪除數(shù)據(jù)庫(kù)
use 數(shù)據(jù)庫(kù)名
db.dropDatabase()
// 創(chuàng)建集合
db.createCollection('集合名稱')
// 顯示當(dāng)前數(shù)據(jù)庫(kù)的集合
show collections
// 刪除某個(gè)集合
db.庫(kù)名.drop()
// 重命名集合
db.庫(kù)名.renameCollection('newName')文檔命令
// 插入文檔/
db.集合名.insert(文檔對(duì)象)
// 查詢文檔
db.集合名.find(查詢條件)
// 更新文檔
db.集合名.update(查詢條件, 新文檔)
db.users.update({name: 'Bob'},{age: 18})
db.集合名.update({name:'Bob'},{$set:{age:19}})
// 刪除文檔
db.集合名.remove(查詢條件)
// remove() 方法已經(jīng)被棄用
// 刪除第一個(gè)匹配的文檔
db.collection.deleteOne( { name: '張三' });
// 刪除所有匹配的文檔
db.collection.deleteMany( { name: '張三' });到此這篇關(guān)于Node.js-Mongodb數(shù)據(jù)庫(kù)的文章就介紹到這了,更多相關(guān)Node.js Mongodb數(shù)據(jù)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Node.js操作MongoDB數(shù)據(jù)庫(kù)實(shí)例分析
- Node.js中使用mongoose操作mongodb數(shù)據(jù)庫(kù)的方法
- node.js連接MongoDB數(shù)據(jù)庫(kù)的2種方法教程
- Node.js對(duì)MongoDB數(shù)據(jù)庫(kù)實(shí)現(xiàn)模糊查詢的方法
- Node.js連接MongoDB數(shù)據(jù)庫(kù)產(chǎn)生的問(wèn)題
- node.js連接mongoDB數(shù)據(jù)庫(kù) 快速搭建自己的web服務(wù)
- 了不起的node.js讀書(shū)筆記之mongodb數(shù)據(jù)庫(kù)交互
- node.js操作mongoDB數(shù)據(jù)庫(kù)示例分享
相關(guān)文章
npm安裝淘寶鏡像報(bào)錯(cuò)問(wèn)題解決(npm install -g cnpm)
本文主要介紹了npm安裝淘寶鏡像報(bào)錯(cuò)問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-01-01
Node.js?連接?MySql?統(tǒng)計(jì)組件屬性的使用情況解析
這篇文章主要為大家介紹了Node.js?連接?MySql?統(tǒng)計(jì)組件屬性的使用情況解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
npm install安裝模塊-save和-save-dev命令的區(qū)別
這篇文章介紹了npm install安裝模塊-save和-save-dev命令的區(qū)別,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
node.js WEB開(kāi)發(fā)中圖片驗(yàn)證碼的實(shí)現(xiàn)方法
這篇文章主要介紹了node.js WEB開(kāi)發(fā)中圖片驗(yàn)證碼的實(shí)現(xiàn)方法,使用ccap模塊實(shí)現(xiàn),需要的朋友可以參考下2014-06-06
nodejs實(shí)現(xiàn)一個(gè)word文檔解析器思路詳解
這篇文章主要介紹了nodejs實(shí)現(xiàn)一個(gè)word文檔解析器的思路詳解,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-08-08
詳解nodejs addon實(shí)現(xiàn)回調(diào)函數(shù)事件
本文介紹了一個(gè)Node.js addon的實(shí)現(xiàn),通過(guò)封裝異步回調(diào)接口,使用libuv和nan模塊處理從C++到JavaScript的回調(diào),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2026-02-02
koa2 數(shù)據(jù)api中間件設(shè)計(jì)模型的實(shí)現(xiàn)方法
這篇文章主要介紹了koa2 數(shù)據(jù)api中間件設(shè)計(jì)模型的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
使用node-cron實(shí)現(xiàn)Node.js定時(shí)任務(wù)方式
node-cron是一個(gè)輕量級(jí)的Node.js庫(kù),用于在指定時(shí)間或間隔執(zhí)行任務(wù),它支持Cron表達(dá)式,適用于定時(shí)任務(wù)場(chǎng)景,文章還介紹了基礎(chǔ)用法、高級(jí)功能、實(shí)際應(yīng)用示例以及注意事項(xiàng)2025-10-10
nodejs實(shí)現(xiàn)發(fā)送郵箱驗(yàn)證碼功能
這篇文章主要為大家詳細(xì)介紹了nodejs實(shí)現(xiàn)發(fā)送郵箱驗(yàn)證碼功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04
如何用nodejs給C#寫(xiě)一個(gè)數(shù)據(jù)表的實(shí)體類生成工具
這篇文章主要介紹了如何用nodejs給C#寫(xiě)一個(gè)數(shù)據(jù)表的實(shí)體類生成工具,對(duì)nodejs感興趣的同學(xué),可以參考下2021-05-05

