String Number Date Buffer Boolean Mixed ObjectId Array Decimal128 Map UUID
//其它:
其它属性:
index: 布尔值 是否对这个属性创建索引
unique: 布尔值 是否对这个属性创建唯一索引
sparse: 布尔值 是否对这个属性创建稀疏索引
required: 布尔值或函数 如果值为真,为此属性添加 required 验证器
default: 任何值或函数 设置此路径默认值。如果是函数,函数返回值为默认值
get: 函数 使用 Object.defineProperty() 定义自定义 getter
set: 函数 使用 Object.defineProperty() 定义自定义 setter
Mixed: 等同于:{} Object Schema.Types.Mixed, 可以存入任何对象
eg:
const schema = new Schema({
name: String,
binary: Buffer,
living: Boolean,
// updated: { type: Date, default: Date.now },
updated: { type: Date, default: new Date() },
age: { type: Number, min: 18, max: 65 },
mixed: Schema.Types.Mixed,
_someId: Schema.Types.ObjectId, //mongoose.ObjectId
decimal: Schema.Types.Decimal128,
array: [],
ofString: [String],
ofNumber: [Number],
ofDates: [Date],
ofBuffer: [Buffer],
ofBoolean: [Boolean],
ofMixed: [Schema.Types.Mixed],
ofObjectId: [Schema.Types.ObjectId],
ofArrays: [[]],
ofArrayOfNumbers: [[Number]],
nested: {
stuff: { type: String, lowercase: true, trim: true }
},
map: Map,
mapOfString: {
type: Map,
of: String
},
uuid: Schema.Types.UUID, // Can also do `_id: 'UUID'`
})
const Thing = mongoose.model('Thing', schema)
const m = new Thing
m.name = 'Statue of Liberty'
m.age = 125
m.updated = new Date()
//m.markModified('updated')
m.binary = Buffer.alloc(0)
m.living = false
m.mixed = { any: { thing: 'i want' } }
m.markModified('mixed')
m._someId = new mongoose.Types.ObjectId
m.array.push(1)
m.ofString.push('strings!')
m.ofNumber.unshift(1, 2, 3, 4)
m.ofDates.addToSet(new Date)
m.ofBuffer.pop()
m.ofMixed = [1, [], 'three', { four: 5 }]
m.nested.stuff = 'good'
m.map = new Map([['key', 'value']])
m.uuid = require('crypto').randomUUID()
m.save(callback)
Sort: Trending