【发布时间】:2022-02-09 22:00:41
【问题描述】:
我有一个预订集合,我在其中存储如下数据:
{
_id,
fieldId: (a reference to _id from another collection),
status: a string which can be `valid` or `cancelled` or `completed`,
date: eg. `2022-02-09T13:00:00.000+00:00`
}
现在,我想确保在给定日期只能有一个 fieldId 的预订,其状态为:有效。取消或完成的可以有多个,也可以没有,但 fieldId、date 和 status 的值valid 之间的组合必须是唯一的。我知道如何为 fieldId 和 date 创建唯一索引:
BookingSchema.index({ fieldId: 1, date: 1 }, { unique: true });
是否还可以添加状态字段的值valid?如果没有,我是否应该只检查每个预订是否已经存在该日期和字段的valid 预订?
【问题讨论】:
-
部分索引 - “部分索引只索引集合中满足指定过滤器表达式的文档。”.
标签: mongodb mongoose unique-index