干嘛的:數據庫,nosql(非關系型)
場景:解決大規模數據集合多重數據種類
一、mongoDb安裝:
下載地址: https://www.mongodb.com/download-center
上面這個地址是官方地址,有時打不開,如果打不開可以進入這個網址下載,這個網址包含了mongoDB歷來的版本和最新版本;地址:http://dl.mongodb.org/dl/win32/x86_64
下載過后如圖所示:
然后點擊進行安裝,直接一直下一步就可以了。
二、指定數據存儲目錄:
第一次啟動mongoDB時需要指定一下路徑,否則會報錯。
先建立一個data文件,再data文件內建立一個db文件(可以再任意盤符下c盤/d盤/e盤,最好是在根目錄下,太深容易報錯);
我c盤比較大,其它盤都滿了,就建立在c盤了。建議建立在d盤根目錄下。
打開命令行,找到mongod.exe的路徑,運行mongod.exe.

然后運行mongod --dbpath C:\data\db 即可
![]()
如果data\db文件出現下圖所示,說明指定存儲路徑成功。

三、運行路徑配置:
運行服務端,啟動數據庫服務,找到指定的路徑,系統默認的安裝路徑是:C:\Program Files\MongoDB\Server\3.4\bin;找到路徑點擊運行mongod.exe即可;
運行客戶端點擊mongo.exe即可。

如果不想每次運行時都去找mongod.exe的路徑(畢竟很麻煩)我們可以進行配置,下次在運行是只需要在命令行輸入mongod(服務端);再打開一個命令窗口輸入mongo(客戶端)。我現在以windows10為例進行路徑配置,其實windows7更加的簡單。步驟:我的電腦-->高級系統設置(系統設置)-->環境變量-->path添加C:\Program Files\MongoDB\Server\3.4\bin即可。
如圖:再電腦界面找到windows(c)圖標,點擊進入再點此電腦,如圖所示點擊系統設置。

進入系統設置,如圖再點擊高級系統設置,就會彈出系統屬性彈框

然后點擊環境變量,如圖:找到path再新建中添加路徑:C:\Program Files\MongoDB\Server\3.4\bin;

然后一直確定關閉彈窗即可。
然后windows鍵+R輸入cmd,打開命令行,輸入mongod即可運行服務端;

默認端口號是27017,說明服務器端鏈接成功;在重新打開一個命令行輸入mongo運行客戶端;

如圖所示說明客戶端連接成功。到此為止mongoDB配置完成。
四、簡單API操作
1、庫操作:
查: show dbs
db 查看當前庫
建+使用(切換過去): use 庫名 沒有建,有就切換
刪: db.dropDatabase() 刪除當前庫
2、集合(表)操作:
建:db.createCollection('表名',{配置})
配置:{size:文件大小,capped:true,max:條數|文檔數} capped定量
查:show collections / db.getCollectionNames()
db.集合.isCapped() true/false 查詢集合是否是定量的
刪:db.集合.drop()
3、文檔(row)操作:
增:
db.集合.save({}) / db.集合.insert({}) 添加一條
db.集合.save([{},{}]) / db.集合.insert([{},{}])
insert 不會替換相同ID save會替換
刪:
db.集合.deleteOne({}) 刪除的是第一條
db.集合.deleteOne({要刪數據描述}) 刪除的是符合描述第一條
db.集合.remove({},true) 一條
db.集合.remove({要刪數據描述}) 多條
db.集合.remove({}) 清空表
改:
db.集合.udpate({要替換的數據},{替換后的},bl插入,bl全修改)
替換后的:
{$set:{數據},$inc:{age:1}}
查:
所有:db.集合.find(條件)
條數: db.集合.find().count()
去重:db.集合.distinct(key) 查key
條件
{age:22} age == 22
{age:{$gt:22}} age > 22
{age:{$lt:22}} age < 22
{age:{$gte:22}} age>=22
{age:{$lte:22}} age<=22
{age:{$lte:122,$gte:22}} age<=122 && age>=22
{$or:[{age:22},{age:122}]} 22 or 122
{key:value,key2,value2} value && value2
{name:/正則/}
db.集合.find({條件},{指定要顯示列區域})
指定要顯示列區域: 區域名username:1 顯示着個區域,其他不顯示
指定要顯示列區域: 區域名username:0 不顯示着個區域,其他顯示
_id 是默認顯示
限定:
db.集合.find().limit(number) 限定
db.集合.find().skip(number) 跳過
db.集合.findOne() / db.集合.find().limit(1) 查詢第一條
排:
升:db.集合.find().sort({key:1})
降:db.集合.find().sort({key:-1})
db.集合.find({條件},{指定顯示區域}).skip(頁碼*一頁條數).limit(一頁條數).sort({key:1})
五、nodejs + mongodb
1. require('mongodb'); 引入模塊 需要npm安裝
2. 創建客戶端 mongoCt = mongodb.MongoClient
3. 鏈接庫 mongoCt.connect('協議://地址:端口/庫名',回調(err,db))
db 庫對象
4. 鏈接集合(表) user = db.collection('集合名');
5. user.API() 表操作 返回 對象
user.API().toArray((err,result)=>{reulst==arr})
六、mongoDB和mysql對比
名詞
mysql mongoDb
database(庫) database(庫)
table(表) collection(集合)
row(一條數據) document(文檔)
column(字段) field(區域)
...
存儲方式:
mysql 二維表
MongoDB json
更多文檔可以查看MongoDB中文網。
