MongoDB 是一個(gè)介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。
一、MongoDB必須理解的概念
1.數(shù)據(jù)庫:每個(gè)數(shù)據(jù)庫都有自己的權(quán)限和集合。
2.文檔:一個(gè)鍵值對。
3.集合:一組文檔,即一組鍵值對。當(dāng)?shù)谝粋€(gè)文檔插入時(shí),集合就會(huì)被創(chuàng)建。
二、Mac下的MongoDB安裝和啟動(dòng)
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.新建一個(gè)命令終端,輸入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:使用某個(gè)數(shù)據(jù)庫
5.db.COLLECTION_NAME.insert({“key”:”value”,””:””......}):向某個(gè)集合中插入文檔(注意格式)
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是要?jiǎng)?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"); //選擇某一個(gè)集合 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)容 });
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com