如何将mongoose字段的默认值设置为现有条目的数量?

时间:2018-01-03 15:11:52

标签: node.js mongodb mongoose mongoose-schema

我正在尝试将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);

任何人都可以帮助我如何实现理想的行为吗?

1 个答案:

答案 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);

另一半将是自动获取集合名称