我有一个集合Task
,我将其用作另一个集合User
中的子文档,其定义如下:
const userSchema = new Schema({
// Other user fields
tasks: [TaskSchema]
});
const TaskSchema = new Schema({
id: Schema.Types.ObjectId,
name: {
type: String,
required: true
},
category: {
type: Schema.Types.ObjectId,
ref: 'TaskCategory'
}
});
然后,我在Task
集合中定义一个唯一索引,该索引由name
和category
组成:
TaskSchema.index({ category: 1, name: 1 }, { unique: true });
根据此定义,我不想允许在同一类别中创建具有相同名称的任务。但是我不明白的是,我什至无法创建2个在相同类别中具有相同任务的用户。
我在做什么错了?