只在此山中,雲深不知處


聽首歌



© 2018 by Shawn Huang
Last Updated: 2018.5.27

MongoDB

首先下載安裝MongoDB,接下來 安裝MongoDB driver,使用npm install mongodb指令。找到mongodb的安裝目錄(e.g. C:\Program Files\MongoDB\Server\3.6\bin),執行mongod.ext(打mongod)來啟動mongodb,若是連結失敗,d可能需要檢查一下是否有這個目錄(根據連線失敗訊息)C:\Data\db,再啟動一次(mongod)。
>> node7_1_mongodb.js
跟之前一樣執行node node7_1_mongodb.js,出現Database created!字樣,成功建立一個database名為mydb。

Collection


Collection就是一個表格的意思,使用createCollection()方法建立。
>> node7_2_collection.js
成功建立一個collection。

insert


增加一筆資料進入collection。
>> node7_3_insert.js
會出現E11000 duplicate key error index這個錯誤訊息然後斷線,雖然還是insert成功..........

find


findOne(query, callback)會傳回第一筆找到的資料,query是搜尋條件,下例因為給空物件,所以會傳回第一筆資料。。
>> node7_4_find.js
若要尋找特定條件資料,使用find(query).toArray(callback)方法(toArray是因為可能找到不只一筆資料),若要限制傳回數量可以加上limit(n)例如find(query).limit(5).toArray(callback)
>> node7_5_find.js
query的內容可以使用Regular Expression,例如使用query={name:/M./};來找到name是M開頭的資料。

Update


>> node7_6_update.js
若使用updateMany則會更新所以符合的資料。

sort


可以使用find(query).sort({item:1}).toArray(callback)來排序,使用find(query)可以先找到需要的資料,若無query則為全部資料。sort({item:1})中的1若改為-1則為降冪排列,否則為升冪排列。
>> node7_7_sort.js

delete


刪除資料可使用deleteOne(query, callback)與deleltMany(query, callback)來刪除一或多筆資料。
>> node7_8_deleteff.js

drop collection


>> node7_9_drop.js

mongo shell


之前的操作也可以直接在mongo shell執行,在連線成功同時,再開啟一個DOS視窗,一樣到mongodb的安裝目錄執行mongo.ext(打mongo)。
  1. help: 查看指令
  2. show dbs: 查看資料庫
  3. use dbname: 換到dbname這個database,e.g. use mydb
  4. show collections: 查看collection列表
  5. db.collection.help(): 查看collection相關指令,e.g. db.players.help()
  6. db.collection.find(): 查看collection內資料,e.g. db.players.find()
  7. db.collection.insert(obj): 增加一筆資料,e.g. db.players.insert({name:"Tom", occupation:"Warrior"})
  8. db.collection.updateOne(query, newvalue): 更新一筆資料,e.g. db.players.updateOne({name:"Mary"}, {$set:{occupation:"Paladin"}})
  9. db.collection.deleteOne(query): 刪除一筆資料,e.g. db.players.deleteOne({name: "Tom"})
  10. db.collection.drop(): 刪除collection
除了使用help與db.collection.help()等指令來查詢可以之指令外,更多詳細內容亦可見官網