是否在子文档上计算复合唯一索引?

时间:2018-07-27 15:21:21

标签: node.js mongodb mongoose

我有一个集合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集合中定义一个唯一索引,该索引由namecategory组成:

TaskSchema.index({ category: 1, name: 1 }, { unique: true });

根据此定义,我不想允许在同一类别中创建具有相同名称的任务。但是我不明白的是,我什至无法创建2个在相同类别中具有相同任务的用户。

我在做什么错了?

0 个答案:

没有答案