- 挖坑:集合CURD,文档CURD
- 连接一个不存在的数据库,不会立即创建该数据库,只有执行到文档对象的 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))
- 结构支持的预设 type 类型:
- https://mongoose.nodejs.cn/docs/schematypes.html#google_vignette
required,
default,
select, // 返回文档对象的时候是否返回该属性,password一般不会返回,所以设置为 false
validate(val),
get(),
set(val),
alias('realname', 'name'), // realname 会被写入数据库,name 是其别名,用来简化代码,name 也可以是一个字符串数组,用来设置多个别名
immutable, // Boolean, 为 true 时,该属性不允许被更改,更改操作会失效,除非设置文档对象的 isNew 属性为 true
transform(), 将schema 转化为 json,一般不主动使用