在模式定义中取消选择mongoose中的数组

时间:2016-04-30 23:09:27

标签: mongodb mongoose schema

基本上标题是什么。我在Schema中有这个:

meta: [{
    event: {type: Schema.Types.ObjectId, ref: 'Event', required: true, unique: true},
    views: {type: Number, default: 0},
    clicks: {type: Number, default: 0}
}]

我想默认定义mongoose不选择该字段。 类似的东西:

otherField: {type: String, select: false}

我已经尝试过了,但它没有用:

meta: {
    type: [{
        event: {type:  Schema.Types.ObjectId, ref: 'Event', required: true, unique: true},
        views: {type: Number, default: 0},
        clicks: {type: Number, default: 0}
    }],
    select: false
}

甚至可以在架构创建时取消选择复杂数组吗? 我确信这确实有效:

meta: {type: Array, select: false}

但是这种方式没有正确定义。

1 个答案:

答案 0 :(得分:0)

您可以做的是创建一个新的子模式

var metaSchema = new mongoose.Schema({
    event: {type:  Schema.Types.ObjectId, ref: 'Event', required: true, unique: true},
    views: {type: Number, default: 0},
    clicks: {type: Number, default: 0}
});

并使用select:false

    meta: {type: [metaSchema], select: false}