😄 mongoose Schema 小助手
- 给Schema添加
created_at
和updated_at
属性并且自动管理他们
- 从输出的json中删除
_id
和__v
- 添加page方法用来分页
npm i base-schema mongoose -S
const Schema = require('base-schema')
const Foo = Schema('Foo', {
name: String
})
await Foo.create({ name: 'foo' })
await Foo.find({}).page(1, 10)
名称 |
引用 |
描述 |
Schema.ObjectId |
mongoose.Schema.Types.ObjectId |
一个 mongoose.Schema.Types.ObjectId 的引用 |
Schema.Int32 |
mongoose.Schema.Types.Int32 |
一个 mongoose-int32 模块的引用 |
Schema.Decimal128 |
mongoose.Schema.Types.Decimal128 |
一个 mongoose.Schema.Types.Decimal128 的引用 |
Schema.Double |
mongoose.Schema.Types.Double |
一个 @mongoosejs/double 模块的引用 |
名称 |
引用 |
描述 |
phone |
Schema.Field.phone |
给Shema添加phone 和used_phones 字段 |
password |
Schema.Field.password |
给Shema添加password 字段和compwd 方法 |
const { phone, password } = Schema.Field
const User = Schema('User', { phone: phone, password: password })
const user = await User.create({
phone: '13812345678',
password: '@lili520'
})
// user.phone = '13812345678'
// user.used_phones = ['13812345678']
// user.password = hash
// await user.compwd('@lili520') is true
// await User.findOne().select('+password +used_phones')
// password 和 used_phones 默认不查询
const A = Schema('A', {
name: String
})
const B = Schema('B', {
name: String,
a: {
type: Schema.ObjectId,
ref: 'A'
}
})
// 原来的用法是{a: new mongoose.Types.ObjectId('5cf8e018e5fd67512487be2e')}
await B.aggregate().match({ a: Schema.Id('5cf8e018e5fd67512487be2e') })