在mongoose nodejs中唯一的多个字段的组合

时间:2018-01-19 15:39:33

标签: node.js mongodb mongoose mongoose-schema

我有一个模特:

let MySchema = new Schema({
  created: {
    type: Date,
    default: Date.now
  },
  updated: {
    type: Date
  },
  user_id: {
    type: Schema.ObjectId,
    ref: "User",
    required: true
  },
  material_id: {
    type: Schema.ObjectId,
    ref: "Material",
    required: true
  },
  data: { }
});

如何设置user_idmaterial_id唯一的组合,但我需要将这两个字段组合成唯一,而不是仅为每个字段添加unique: true

1 个答案:

答案 0 :(得分:0)

找到了答案:

MySchema.index({ user_id: 1, material_id: 1 }, { unique: true });

它将使用两个字段的组合创建索引,并且您将无法使用相同的两个索引在mongoDB中创建新文档,但如果某些索引与已在DB中保存的索引不同,则可以创建文档。 这正是我想要的。