需要Mongoose make Array

问题描述 投票:6回答:2

我有一个看起来像这样的猫鼬模型:

var ProjectSchema = new Schema({
    name: { type: String, required: true },
    tags: [{ type: String, required: true }]
});

我希望项目至少有一个标签是必需的。但是当我保存没有标签数组的新项目时,mongoose不会抛出错误:

var project = new Project({'name': 'Some name'});
project.save(function(err, result) {
    // No error here...
});

我在这里错过了什么?如何指定所需的数组?

validation mongoose
2个回答
17
投票

单行将是:

tags: {type: [String], required: true}

SchemaTypes


7
投票

AFAIK,您需要将type设置为Array并添加自定义验证器以确保每个条目都是String

tags : {
  type     : Array,
  required : true,
  validate : {
    validator : function(array) {
      return array.every((v) => typeof v === 'string');
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.