我正在尝试将mongoose模式中字段的默认值设置为数据库中已存在的条目数。
要创建的第一个条目对此字段的值为0
,第二个条目的值应为1
等。
背景:它应该是某种排序索引,应由用户更改,但默认为创建条目的顺序。因此,它应该是一个唯一的序列号。
这就是我的mongoose Schema到目前为止的样子:
const CategorySchema = Schema({
title: String,
sorting: { type: Number, index: { unique: true }, default: ##number_of_existing_entries### },
creationDate: { type: Date, default: Date.now },
});
const Category = mongoose.model('Category', CategorySchema);
任何人都可以帮助我如何实现理想的行为吗?
答案 0 :(得分:0)
我知道这是一个老问题,但是如果您像我一样在Google中找到了这个问题...
一半的解决方案:
const CategorySchema = Schema({
title: String,
sorting: {
type: Number,
index: { unique: true },
default: function() {
const collection = this.parent().categories;
return (collection) ? collection.length : 0;
}
},
creationDate: { type: Date, default: Date.now },
});
const Category = mongoose.model('Category', CategorySchema);
另一半将是自动获取集合名称