You are viewing a single comment's thread from:

RE: Mongodb数据库快速开发

in #starnote • 19 hours ago

参考

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)