arrays - Mongoose 模式需要可以为空的数组

标签 arrays validation mongoose required

我有这个架构

var StuffSchema = new mongoose.Schema({
    _id: { type: String, required: true, unique: true },
    name: { type: String, required: true }
});

mongoose.model('Stuff', StuffSchema);

工作正常。

现在我需要添加另一个包含这个的模式“ cargo ”
mystuff: { type:[String], ref: 'Stuff', required:true},

也就是说,我希望 mystuff 包含 Stuff 的 id 数组,但是在运行此代码时会因验证错误而失败
mongoose.model('Cargo').create( some data...)

如果我对 mystuff 字段使用空数组。
如果我将 Cargo 架构更改为
mystuff: { type:[String], ref: 'Stuff'},

但我希望 mystuff 字段是必需的并允许空数组

我该怎么做才能做到这一点?

最佳答案

默认情况下创建空数组(另请参阅 this )。属性 required: true 要求数组中至少包含一个元素 ( source code )。您可以删除该属性以获得所需的行为。

(另外,mongoose 为所有模式分配了一个类型为 ObjectId 的默认 _id 字段。声明它是不必要的,使用字符串不是典型的,尽管当然允许。)

2017 年 11 月编辑 :这是 Mongoose 5 中的候选更改。请参阅 https://github.com/Automattic/mongoose/issues/5139

关于arrays - Mongoose 模式需要可以为空的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27268172/

相关文章:

javascript - 在 javascript 中映射对象数组并按键分组

Javascript 循环对象数组并返回第一个值

javascript - 在 Javascript 中组合数组

c# - 如何调用验证属性进行测试?

javascript - 似乎无法在 Eclipse 中禁用 JavaScript 验证

javascript - new ObjectId() 和 new ObjectId and ObjectId() 有什么区别?

javascript - Mongoose 和 Typescript - 将模型链接到特定的 mongoose 连接

mongodb - 固定值字段的 Mongoose 复合索引

python - 多次克隆一个 NumPy 数组

c# - 类数据验证的实现