前幾天在學習node操做數據庫時使用的mongoDB數據庫,今天來對mongodb的安裝過程及配置以及後面須要使用的一些經常使用命令作一下總結。html
首先,須要下載mongodb安裝程序node
可自行到官網下載:mysql
https://www.mongodb.com/download-center/community
而後,安裝mongodbsql
安裝過程當中可選擇complete(默認安裝方式)及custom(自定義安裝方式),其中有一步不用選擇 「 install mongoDB compass 」,該選項是安裝mongoDB的GUI可視化界面(勾選上的話安裝很慢),能夠到官網去下載圖形界面或者使用其餘軟件(本身使用的是Navicat)mongodb
https://www.mongodb.com/download-center/compass
最後,配置環境變量shell
和node相似,mongo數據庫也是須要配置環境變量的:數據庫
個人電腦(屬性) --> 高級系統設置 --> 環境變量 --> 系統變量 --> 找到path屬性,將mongodb的安裝目錄添加進去學習
1、啓動數據庫 >mongod --dbpath (自定義文件夾路徑) --port 端口號 // mongodb默認端口號爲27017,可自定義其餘端口 2、鏈接數據庫 >mongo --port 端口號 3、查看數據庫信息 >db.stats() 4、選擇使用哪一個數據庫 >use 數據庫名 // 該指令是選擇指定數據庫,若沒有則自動建立 5、顯示有哪些數據庫 >show dbs; 6、顯示數據庫中有哪些表 >show tables; 7、查看錶信息 >db.data_sys_log.stats() 8、數據庫幫助 >db.help() 9、數據表幫助 >db.data_sys_log.help() 10、查看全表記錄 >db.data_sys_log.find() 11、設置命令行查詢數據,每頁顯示多少條 >DBQuery.shellBatchSize = 5 /* 默認每頁顯示20條記錄,當顯示不下的狀況下,能夠用 it迭代命令查詢下一頁數據 能夠經過DBQuery.shellBatchSize設置每頁顯示數據的大小。如: DBQuery.shellBatchSize = 5,這樣每頁就顯示5條記錄了 */ 12、查詢一條記錄 >db.data_sys_log.findOne() 13、查詢彙集中字段的不一樣記錄 >db.data_sys_Log.distinct("login_name") 14、查詢彙集中login_name包含「李」關鍵字的記錄 >db.data.sys_log.find({"login_name":/李/}) 15、查詢彙集中login_name以「李」關鍵字開頭的記錄 >db.data.sys_log.find({"login_name":/^李/}) 16、查詢彙集中login_name以「李」關鍵字結尾的記錄 >db.data.sys_log.find({"login_name":/李$/}) 17、查詢彙集中指定列 1表示true:至關於select logoin_name,role_name from data_sys_log >db.data_sys_log.find({},{"login_name":1,"role_name":1}) 雖然只查login_name,role_name兩列,默認會帶出_id列 18、查詢彙集中排除指定列 >db.data_sys_log.find({},{"login_name":0,"role_name":0}) 19、查詢彙集中指定列,且 Age > 20 >db.data_sys_log.find({"Age":{"$gt":20}},{"login_name":0,"role_name":0}) 20、彙集中字段排序 >db.data_sys_log.find().sort({"login_name":1}) 升序 >db.data_sys_log.find().sort({"login_name":-1}) 降序 21、統計彙集中記錄條數 >db.data_sys_log.find().count(); 22、統計彙集中符合條件的記錄條數 >db.data_sys_log.find({"Age":{"$gt":20}}).count() 23、統計彙集中字段符合條件的記錄條數 >db.data_sys_log.find({"login_name":{"$exists":true}}).count() 至關於:select count(login_name) from data_sys_log 24、查詢彙集中前5條記錄 >db.data_sys_log.find().limit(5) 25、查詢彙集中第10條記錄之後的5條記錄 >db.data_sys_log.find().skip(10).limit(5) 26、查詢彙集中第10條之後的記錄,即從第11條開始 >db.data_sys_log.find().skip(10) 27、OR查詢 >db.data_sys_log.find({"$or":[{"login_name":/王/},{"role_name":/王/}]},{"login_name":true,"role_name":true}) 至關於: select login_name,role_name from data_sys_log where login_name like '%王%' or role_name like '%王%' 28、添加新記錄 >db.data_sys_log.insert({"_class":"com.uws.base.model.SysLogMongo","login_name":"測試","role_name":"測試角色","opt_content":"[類名]:com.uws.base.controller.LoginController,[方法]:logout,[參數]:","create_time":"2019-05-21 10:59:10"}) 注意:若是不選擇庫執行,即不use hz_studentroll; 則直接在test庫中建立data_sys_log表,插入數據 29、修改記錄 >db.data_sys_log.update({"login_name":"系統管理員"},{"$set":{"role_name":"管理員"}}) 注意:配置多條,只會修改一條 30、刪除記錄 >db.data_sys_log.remove({"role_name":"管理員"}) >db.data_sys_log.remove({"age":{$lt:20}}) age<20 $lt < $lte <= $gt > $gte >= $ne != 31、所有刪除 >db.data_sys_log.remove() >db.data_sys_log.remove({}) 32、給表添加字段 >db.data_sys_log.update({},{$set:{source:null}},{multi:1}) 33、刪除表字段 >db.data_sys_log.update({},{$unset:{'source':null}},false,true) 34、刪除數據庫 >db.dropDatabase(); 刪除當前所在的數據庫 35、刪除表 >db.user.drop() 刪除user表 36、關閉mongo服務 1)使用數據庫命令關閉: >use admin >db.shutdownServer() 2)使用mongod命令關閉 >mongod --shutdoun -f ../mongo.conf 或者 >mongod -f ../monog.conf shutdown 3)使用kill命令 >ps -ef|grep mongo >kill pid >ps -ef|grep pmon 使用 kill -2 pid 或 kill -15 pid 不要使用kill -9 pid,由於若是MongoDB運行在沒開戶日誌(--journal)的狀況下,可能會形成數據損失。 37、創建複合索引 >db.test.ensureIndex({"age": 1,"no": 1,"name": 1 }) 38、查看索引命名空間 >db.tb_user.stats() 查看indexSizes的值 39、查看錶數據大小:bytes db.sysLog.dataSize() 40、查看錶分配大小,包括未使用的空間 >db.sysLog.totalSize() 41、查看錶索引大小 >db.sysLog.totalIndexSize(); // 注:前面的 data_sys_log 表示集合名(和mysql中表相似)