[ 資料庫連線 ]
- 連線一個不存在的資料庫,不會立即建立該資料庫,只有執行到文件物件的 save 等方法時,才會去建立該資料庫
const mongoose = require('mongoose')
// 這裡捕獲的是連結過程中發生的異常
const db = mongoose.connect('mongodb://host:port/dbname').catch(err => console.log(err))
// 安全模式連結資料庫,user 和 pwd 分別是使用者名稱和密碼
const db = mongoose.conect('mongodb://user:pwd@host:port/dbname').catch(err => console.log(err))
// 這裡使用 once 而不是 on,只有第一次 open 的時候輸出
db.once('open', ()=> {console.log('database connect successful')})
// 連結成功以後如果出現異常,處理異常
db.on('error', err => console.log(err))
[ Schema ]
- 結構支援的預設 type 型別:
- https://mongoose.nodejs.cn/docs/schematypes.html#google_vignette
- String | 專有型別選項 ,
- Number ,
- Date ,
- Buffer,
- Boolean,
- Mixed,
- ObjectId ,
- Array,
- Decimal128,
- Map,
- Schema,
- UUID,
- BigIng
[ 通用模式型別選項 ]
- https://mongoose.nodejs.cn/docs/schematypes.html#schematype-options
required,
default,
select, // 返回文件物件的時候是否返回該屬性,password一般不會返回,所以設定為 false
validate(val),
get(),
set(val),
alias('realname', 'name'), // realname 會被寫入資料庫,name 是其別名,用來簡化程式碼,name 也可以是一個字串陣列,用來設定多個別名
immutable, // Boolean, 為 true 時,該屬性不允許被更改,更改操作會失效,除非設定文件物件的 isNew 屬性為 true
transform(), 將schema 轉化為 json,一般不主動使用
[ model ]