# Web 企業運算 - Week 11 M0861101 許家維 ### 本週自學清單 * MongoDB 基礎建置 * Angular + MongoDB 使用 * Postman 基礎指令使用 * 本文網址 : https://hackmd.io/Q2Fifz4BS_WcjrmXDYfaBw * 未來將把文章陸續整理到Google blogger 中 * 期中履歷版網站上傳,加入部分如下 * 照片更換 * 調整成正式履歷格式 * 加入Git版本控制 * https://jacky030hsu.github.io/jacky_resume/ ### 上課內容程式碼 app.js 內容  todo.js 內容  router.js 內容  ### 學習筆記&成果 **MongoDB** 一種 NoSQL 資料庫,MongoDB 屬於文件資料庫(Document Database),以文本方式儲存,資料的儲存架構是以 JSON 格式儲存,如果使用 Node.js 做為後端,強烈建議使用 MongoDB。 本身沒有 Schema,所以在架構上很好調整。 MongoDB與SQL實例的比較圖  **NoSQL ( Not Only SQL )** 1. **混用關聯式資料庫和NoSQL資料庫來達成最佳的儲存效果** EX.用NoSQL資料庫來儲存資料量大的用戶狀態資料,但其他資料仍然使用關聯式資料庫,以善用SQL語法的好處 2. 具有水平擴充能力,只要增加新的伺服器節點,就可以不斷擴充資料庫系統的容量。簡單來說,只要增加新的伺服器設備,就能自動增加資料庫的容量,從管理角度來看,這也可以減少長期維護資料庫的人力 3. **打破Schema欄位架構的限制** : NoSQL資料庫則是改用Key-Value資料模式來解決龐大資料的異動困難。Key-Value模式是將一筆資料的結構簡化到只有一個Key值對應到一個Value值,每一筆資料之間沒有關連性,所以,可以任意切割或調整,也可以分散到不同的伺服器中建立副本 4. 資料遲早會一致 : 但是ACID(Atomicity、Consistency、Isolation、Durability)架構的資料庫擴充不易,所以,NoSQL資料庫大多沒有交易的設計,而是採用了另外一個不同的CAP資料庫理論。 CAP理論有三個關鍵,包括**資料一致性(Consistent)、可用性(Availability)和中斷容忍性(Partition Tolerance)**。理論上無法同時兼顧CAP這三種特性,所以,NoSQL資料庫通常會選擇其中兩種特性來設計,通常是選擇CP或AP **MongoDB安裝** 伺服器預設資料夾 C:/Program Files/MongoDB/Server/4.2/bin/mongod.cfg (CMD 下指令 code mongod.cfg 可直接以vscode開啟此檔案) mongod.cfg 詳細設定  若要使用shell指令介面,可直接在cmd下```mongo```指令,若連線成功即可進入shell指令介面  或是安裝studio 3T,透過圖形化介面連線至MongoDB Server ,選擇上方Shell 指令區域  **MongoDB基本指令** ```show dbs```: 顯示目前有的database ```use local``` : switch to local database ```show collections``` : show all collections(table in mySQL) in current database ```db``` : show current database ```db.startup_log.find()``` : show startup_log collections data ```db.startup_log.find().size()``` : show startup_log collections data size ```db.users.insert({name:'Jacky',gender:'Male',age:23})``` : 新增一個users資料庫,並新增一筆資料,有三個欄位 ```db.users.update()``` : 更新資料(必須抓取唯一ID,且在更新時必須填寫所有欄位的值) **MongoDB + Express** * mongoose : 一套給Node.js用的MongoDB ODM。透過mongoose可以用包裝過的,更高階的,更直覺的API語法,以及模擬基於SQL資料庫schema的方式,來操作MongoDB資料庫 * mongoose install : ```npm install mongoose --save``` * 建立連線 *  * morgan: 搭配 node 使用的 HTTP 請求記錄器中間層套件。 ### 本周心得 這週是學習後端的第一週,老師的主要教學內容主要是MongoDB的環境架設與Angular的搭配。MongoDB是NoSQL的一種,之前就有聽過,但未能親身去安裝過。這次上課後自己又再重新安裝整個MongoDB,除了搭配上上課提到的GUI,我也試著利用命令提示字元直接操作MongoDB內的資料,熟悉基本指令的用法。上課也上了與Express連結,建立一個可讀取老師資料庫的畫面,由於自己再連線部分較為生疏,這次趁著這次機會也再複習了一次,希望下次可以不用看就直接寫出來此段程式。總體而言,這週的課程讓我獲益良多,未來希望能結合前後端製作個人的電商網站。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up