如何在mongoose模式中定义触发器

时间:2014-08-13 19:15:16

标签: node.js mongodb mongoose

在mongoose模型级别是否有任何类型的触发器,当成员集合的数量达到100时,它能够设置open field = false的值?

var mongoose  = require('mongoose');
var Schema    = mongoose.Schema;

var listSchema = new Schema({
  name: {
    type: String,
    required: true,
    trim: true
  },
  desc: {
    type: String
  },
  open: {
    type: Boolean,
    default: true
  },
  members: [{
    userid: {
      type: Schema.Types.ObjectId, ref: 'User'
    },
    prId: {
      type: Schema.Types.ObjectId, ref: 'PR'
    },
    checkedIn: {
      type: Boolean
    }
  }]
});

module.exports = mongoose.model('List', listSchema);

1 个答案:

答案 0 :(得分:1)

mongo中没有触发器。很难说为什么你想要在收集达到某种限制时更改文件,可能capped collection是你真正想要的?

new Schema({..}, { capped: { size: 1024, max: 100 } });

size是最大集合大小(以字节为单位),max是可以在集合中插入的最大文档数。