# MongoDB ###### tags: `MongoDB` ![](https://i.imgur.com/IQ2ppw0.png) ## Features ![](https://i.imgur.com/pnGYGWg.png) ![](https://i.imgur.com/qsJn8J8.png) ## installation [community server](https://www.mongodb.com/try/download/community) ### 設定DB路徑 到安裝MongoDB的硬碟中新增一個data資料夾,裡面在新增一個db資料夾,以後mongodb的資料就會放在這 ### 啟動DB 直接下載MSI檔安裝 安裝完後設定環境變數 ![](https://i.imgur.com/61z6WnD.png) ![](https://i.imgur.com/8X8gZaq.png) 將path點開 ![](https://i.imgur.com/F2xbMRm.png) 之後到安裝mongoDB的路徑 EX: C:\Program Files\MongoDB\Server\4.4\bin 將這個路徑新增到path裡面 之後就能在cmd下打mongod直接啟動mongodb資料庫了 ### 連接DB 資料庫啟動後開啟mongo就能接到連接資料庫了 (設定過環境變數後也一樣能直接在cmd用mongo開) ### 建立資料庫 (C) [mongoDB指令](https://docs.mongodb.com/manual/reference/command/) 連接到DB後用use 資料庫名 指令可以轉換到該名稱的資料庫,如果不存在就會創一個在轉過去 ![](https://i.imgur.com/aenFliy.png) 這樣就會創一個natours-test資料庫 資料庫建起來後要創collection及document(Mongodb採用Database > collection > document的結構) 使用db.collection名稱.insertOne(document物件)來建立一包含一個document的collection ![](https://i.imgur.com/l9CrFwg.png) 再來用db.tours.find()就能看到剛剛新增的資料了 ![](https://i.imgur.com/DHHtik7.png) show dbs可以顯示目前電腦上所有資料庫 show collections可以顯示目前的資料庫中的所有collection ### Query操作 [Query指令](https://docs.mongodb.com/manual/reference/operator/query/index.html) 這裡舉幾個簡單例子 #### filter (R) 1. $gte 過濾出大於等於某數值的資料 ![](https://i.imgur.com/2KQM0YN.png) 2. $lte 小於等於 ![](https://i.imgur.com/fppVaeX.png) 3. 多個搭配使用 ![](https://i.imgur.com/TPdLnkw.png) 4. $or ![](https://i.imgur.com/pBNOI3V.png) 5. 只顯示特定資料 ![](https://i.imgur.com/sDaDNYD.png) #### update (U) 1. $set (若set的key不存在則會新增進去) ![](https://i.imgur.com/WIFXgYH.png) #### delete (D) 1. deletOne ![](https://i.imgur.com/X008JVt.png) ### 圖形介面操作(MongoDB Compass) mongoDB使用的圖形介面 ![](https://i.imgur.com/0CH6vqY.png) 由於目前是用local的db,只要把db啟動後直接點connect就能連接了 ![](https://i.imgur.com/MH9mhiW.png) 圖形介面可以直接用ADD DATA加document、點擊document直接改資料、在filter的欄位也能用query指令來查詢資料 ![](https://i.imgur.com/rvsXDXK.png) ### MongoDB Atlas遠端資料庫 1. 到MongoDB Atlas登入後依照教學完成配置 2. 左上角新增project ![](https://i.imgur.com/oKtPIV2.png) 3. 設定使用者權限 ![](https://i.imgur.com/OpCuiZ7.png) 4. 點build a cluster ![](https://i.imgur.com/7yKteDr.png) 5. 選好相關的設定後create ![](https://i.imgur.com/eYSc1PE.png) 6. 點connct開啟遠端設定頁面設定IP跟使用者帳密 ![](https://i.imgur.com/Q1d6rAx.png) 7. 選擇連接方法 ![](https://i.imgur.com/mOjgdCG.png) #### compass連接遠端資料庫 8. 點compass連接複製好連接地址後回到compass的new connection將這段貼上完成連接 9. 完成 ![](https://i.imgur.com/rmLLMOz.png) #### mongo shell連接遠端資料庫 8. 選擇mongo shell後複製2的連結貼到cmd後輸入密碼就能直接連接了 ![](https://i.imgur.com/BAt1lSZ.png) 9. 成功 ![](https://i.imgur.com/VlrTVCu.png) #### application連接遠端資料庫 9. 選擇application後選擇使用的環境後複製2的指令 ![](https://i.imgur.com/tgQRPpZ.png) 10. 將字串貼到環境變數並依照說明作處理(將myFirstDatabase改為自己設定的database名) ![](https://i.imgur.com/kpYEZNZ.png) 11. npm i mongoose 安裝mongoose(這裡用@5版本) 12. 到server.js引入mongoose並處理字串(replace密碼) ![](https://i.imgur.com/ZDhcVxr.png) 13. 連接起手式 ```javascript= // server.js const mongoose = require('mongoose') const DB = process.env.DATABASE.replace('<password>', process.env.PASSWORD) mongoose.connect(DB, { useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true, useFindAndModify: true }).then(() => console.log('DATABASE CONNECTED')) ```