MongoDB 是一個基於分散式檔案儲存的資料庫。由 C++ 語言編寫。旨在為 WEB 應用提供可擴展的高效能資料儲存解決方案。
MongoDB 是一個介於關聯式資料庫和非關聯式資料庫之間的產品,是非關聯式資料庫當中功能最豐富,最像關聯式資料庫的。
一、MongoDB必須理解的概念
1.資料庫:每個資料庫都有自己的權限和集合。
2.文檔:一個鍵值對。
3.集合:一組文檔,即一組鍵值對。當第一個文檔插入時,集合就會被建立。
二、Mac下的MongoDB安裝與啟動
1.使用brew進行安裝:brew install mongodb。
2.建立目錄:mkdir -p /data/db。這樣建立的是mongodb配置中的預設目錄。
3.設定/data/db的權限為可讀可寫:chown `id -u` /data/db。
4.執行mongod指令,開啟伺服器。
5.新建一個命令終端,輸入mongo,進入mongo命令列工具(mongod命令不能暫停)這樣就可以在mongo命令列工具中輸入各種mongo命令了。
三、MongoDB命令列的基本操作
1.show dbs:查看資料庫
2.show collections:查看目前資料庫的集合
3.db.COLLECTION_NAME.find():查看該集合下的集合所有文件
4.use DATABASE_NAME:使用某個資料庫
5.db.COLLECTION_NAME.insert({“key”:”value”,””:””......}):向某個集合中插入文件(注意格式)
6.db.COLLECTION_NAME.find({“a”:1}):查找a值為1的文檔
7.db.dropDatabase():刪除目前正在use的資料庫
四、在Node中使用MongoDB
1.安裝
在專案目錄下執行指令:npm install mongodb —save-dev
要注意的是,必須先按照上面的要求安裝好MongoDB正常使用NodeJS中的Mongodb。
2.基本上使用
(1)連接資料庫:
<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' //设定连接的url,注意前半部分是mongodb数据库端口等,testProject是要创建的数据库,可自己命名 MongoClient.connect(url, function(err, db){ //…注意其中的db就指定的是当前数据库 })
(2)建立集合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("集合创建成功") }) });
(2)建立集合db.createCollection()
reeereee
)var collection = db.collection("myCollection"); //选择某一个集合 collection.insertMany([{a:1},{b:2},{c:3}],function(err, result){ //插入数据,这里插入了三条数据 console.log("插入成功"); })這裡插一句,每次執行我們的node程式碼之後,都可以在資料庫中進行結果查看,驗證我們的操作。例如這裡可以使用db.myCollection.find()來查看我們是否成功寫入紀錄。 (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就是获取到的结果 });查找符合條件的文件內容:
collection.find({“a”:1}).toArray(function(err, docs){ <span style="white-space:pre"> </span>console.log(docs); //返回复合条件的内容 });