NodeJS中的MongoDB快速入門詳細(xì)教程
MongoDB 是一個基于分布式文件存儲的數(shù)據(jù)庫。由 C++ 語言編寫。旨在為 WEB 應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲解決方案。
MongoDB 是一個介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。
一、MongoDB必須理解的概念
1.數(shù)據(jù)庫:每個數(shù)據(jù)庫都有自己的權(quán)限和集合。
2.文檔:一個鍵值對。
3.集合:一組文檔,即一組鍵值對。當(dāng)?shù)谝粋€文檔插入時,集合就會被創(chuàng)建。
二、Mac下的MongoDB安裝和啟動
1.使用brew進(jìn)行安裝:brew install mongodb。
2.建立目錄:mkdir -p /data/db。這樣建立的是mongodb配置中的默認(rèn)目錄。
3.設(shè)置/data/db的權(quán)限為可讀可寫:chown `id -u` /data/db。
4.運(yùn)行mongod命令,開啟服務(wù)器。
5.新建一個命令終端,輸入mongo,進(jìn)入mongo命令行工具(mongod命令不能暫停)這樣就可以在mongo命令行工具中輸入各種mongo命令了。
三、MongoDB命令行的基本操作
1.show dbs:查看數(shù)據(jù)庫
2.show collections:查看當(dāng)前數(shù)據(jù)庫的集合
3.db.COLLECTION_NAME.find():查看該集合下的所有文檔
4.use DATABASE_NAME:使用某個數(shù)據(jù)庫
5.db.COLLECTION_NAME.insert({“key”:”value”,””:””......}):向某個集合中插入文檔(注意格式)
6.db.COLLECTION_NAME.find({“a”:1}):查找a值為1的文檔
7.db.dropDatabase():刪除當(dāng)前正在use的數(shù)據(jù)庫
四、在Node中使用MongoDB
1.安裝
在項(xiàng)目目錄下執(zhí)行命令:npm install mongodb —save-dev
要注意的是,必須先按照上面的要求安裝好MongoDB才能正常使用NodeJS中的Mongodb。
2.基本使用
(1)連接數(shù)據(jù)庫:
<span style="font-family: Arial, Helvetica, sans-serif;">var MongoClient = require(‘mongodb').MongoClient; //引入mongodb</span>
[javascript] view plain copy print?在CODE上查看代碼片派生到我的代碼片
var url = ‘mongodb://localhost:27017/testProject' //設(shè)定連接的url,注意前半部分是mongodb數(shù)據(jù)庫端口等,testProject是要創(chuàng)建的數(shù)據(jù)庫,可自己命名
MongoClient.connect(url, function(err, db){
//…注意其中的db就指定的是當(dāng)前數(shù)據(jù)庫
})
(2)創(chuàng)建集合db.createCollection()
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost:27017/myproject';
MongoClient.connect(url, function(err, db) {
console.log("Connected successfully to server");
db.createCollection("myCollection", { "capped": true, "size": 100000, "max": 5000}, function(err, results){
console.log("集合創(chuàng)建成功")
})
});
(3)在集合中插入文檔collection.insertMany()
var collection = db.collection("myCollection"); //選擇某一個集合
collection.insertMany([{a:1},{b:2},{c:3}],function(err, result){ //插入數(shù)據(jù),這里插入了三條數(shù)據(jù)
console.log("插入成功");
})
這里插一句,每次執(zhí)行我們的node代碼之后,都可以在數(shù)據(jù)庫中進(jìn)行結(jié)果查看,驗(yàn)證我們的操作。比如這里可以使用db.myCollection.find()來查看我們是否成功寫入紀(jì)錄。
(4)查找文檔
查找所有文檔:
var collection = db.collection("myCollection");
<span style="white-space:pre"> </span>collection.find({}).toArray(function(err, docs){
<span style="white-space:pre"> </span>console.log(docs); //其中的docs就是獲取到的結(jié)果
});
查找符合條件的文檔內(nèi)容:
collection.find({“a”:1}).toArray(function(err, docs){
<span style="white-space:pre"> </span>console.log(docs); //返回復(fù)合條件的內(nèi)容
});
以上所述是小編給大家介紹的NodeJS中的MongoDB快速入門詳細(xì)教程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
jQuery+koa2實(shí)現(xiàn)簡單的Ajax請求的示例
這篇文章主要介紹了jQuery+koa2實(shí)現(xiàn)簡單的Ajax請求的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03
詳解node Async/Await 更好的異步編程解決方案
這篇文章主要介紹了詳解Async/Await 更好的異步編程解決方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05
Node.js+Socket.io實(shí)現(xiàn)雙人在線五子棋對戰(zhàn)
這篇文章主要為大家詳細(xì)介紹了Node.js+Socket.io實(shí)現(xiàn)雙人在線五子棋對戰(zhàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05
詳解nodejs中exports和module.exports的區(qū)別
本文主要介紹了exports 和 module.exports 的區(qū)別。具有很好的參考價值,下面跟著小編一起來看下吧2017-02-02
Node.JS在命令行中檢查Chrome瀏覽器是否安裝并打開指定網(wǎng)址
這篇文章主要介紹了Node.JS在命令行中檢查Chrome瀏覽器是否安裝,并打開指定網(wǎng)址,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-05-05
利用nginx + node在阿里云部署https的步驟詳解
這篇文章主要給大家介紹了關(guān)于利用nginx + node在阿里云部署https的步驟,文中通過圖文及示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12
node.js三個步驟實(shí)現(xiàn)一個服務(wù)器及Express包使用
這篇文章主要介紹了node.js三個步驟實(shí)現(xiàn)一個服務(wù)器及Express包使用,文章通過新建一個文件展開全文內(nèi)容,具有一定的參考價值,需要的小伙伴可以參考一下2022-05-05

