下載MongoDB 2.4.9版
mongodb官網下載:http://www.mongodb.org/downloads
直接下載地址:http://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-2.4.9.zip
3.6高版本下載地址:https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-ssl-3.6.17.zip
安裝步驟:
1、將下載的mongodb壓縮包解壓到對應文件夾,我的是:D:\SoftInstall\mongodb,請注意,我的bin目錄是:D:\SoftInstall\mongodb\bin,注意自己的bin目錄是否和我的相同
2、配置(請用管理員權限打開cmd,並切換到mongodb安裝的文件夾,如:cd /d D:\SoftInstall\mongodb\bin):
1)創建一個目錄用於保存MongoDB的日志文件:md D:\SoftInstall\mongodb\log,然后增加配置:echo logpath=D:\SoftInstall\mongodb\log\mongo.log > D:\SoftInstall\mongodb\mongod.cfg
2)創建數據庫和日志文件的目錄:md D:\softInstall\mongodb\data\db,然后增加配置:mongod --config D:\SoftInstall\mongodb\mongod.cfg --dbpath D:\SoftInstall\mongodb\data\db\ --install
3、安裝和運行mongodb:
1)安裝mongodb服務:mongod.exe --config D:\SoftInstall\mongodb\mongod.cfg --install
2)運行mongodb:net start mongodb(停止命令為:net stop mongodb)
3)連接到mongodb:mongo
4)創建用戶:切換到admin:use admin,創建用戶:db.addUser("admin","admin"); 查看用戶:db.system.users.find();(注意:mongodb的語句后要加 ; 號)
5)查看數據庫:show dbs
至此,mongodb安裝完成,可以在可視化工具如MongoBooster中通過localhost連接到本地數據庫
PS:
1、安裝過程中可能出現的錯誤:
1)net start mongodb出錯:服務無法啟動,發生系統錯誤1067。請打開配置文件D:\SoftInstall\mongodb\mongod.cfg,看下是否加上配置:dbpath=D:\SoftInstall\mongodb\data\db\,沒有,請手動加上。
2)通過工具連接,MongoError:auth fails錯誤:請在對應的集合加上用戶,安裝步驟3已經給出了切換數據庫和創建用戶的命令。
3)出現類似:Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js的錯誤,在bin目錄下運行:mongod.exe -logpath D:\mongo_log\mongodb.log -logappend -dbpath D:\mongo_data -directoryperdb -serviceName MongoDB -remove,然后再按照安裝步驟,重新安裝MongoDB
2、MongoDB查詢語句:
1)db.collection.drop(); // 刪除集合
2)db.messageDetail.find({}); // 查詢集合
3)db.messageDetail.find({"status":4}); // 根據字段查詢
4)db.messageDetail.find({"status":{ $ne : 4 }}); // "$lt", "$lte", "$gt", "$gte", "$ne"對應於"<", "<=", ">", ">=","!="
5)db.messageDetail.find({"createTime" : {$lte:new Date(2017,10,26)}}); // 時間查詢
6)db.messageDetail.find({"$where":function () { if(this.count > 0) return true;}}); // 函數查詢
7)db.messageLogs.find({}).sort({"createTime":-1}); // 查詢結果排序
8)db.messageDetail.insert({_id:"terast",type:"type1",system:"test"}); // 插入
9)db.messageDetail.find({"createdDate":{"$lte":new Date(Date.now() - 180000)}}); // 查詢小於或等於當前時間三分鍾之前的數據
10)db.messageDetail.aggregate([{ $match: { status: 3 } },{ $group: { _id: "$projectId","time": {$last: "$updatedDate"}, lastVersionManager:{"$last": "$versionManager" } } }]); // 分組查詢
11)db.messageDetail.aggregate([{"$group" : {_id:{source:"$source",status:"$status"}, count:{$sum:1}}}]) // 多個字段分組查詢,計算每個分組數
12)db.dictateLoggerPO.aggregate([{"$group" : {_id:"$projectId"}}]).forEach(function(item){
var count = db.dictateLoggerPO.find({projectId:item._id, "createdDate" : {"$gte":new Date(Date.now() - 2592000000)}}).count();
if(count > 50){
console.log("領域:" + item._id + "最近一個月的通過管控指令發布次數為:" + count);
var deleteCount = db.dictateLoggerPO.find({projectId:item._id, "createdDate" : {"$lte":new Date(Date.now() - 2592000000)}}).count();
db.dictateLoggerPO.deleteMany({projectId:item._id, "createdDate" : {"$lte":new Date(Date.now() - 2592000000)}});
console.log("領域:" + item._id + "刪除一個月以前的數據總數為:" + deleteCount)
}
}); // 分組聚合后,遍歷,根據條件刪除數據
13)db.pizzaConfigPO.find({_id:/tps/}) //模糊查詢