【发布时间】:2022-01-04 04:18:28
【问题描述】:
我想将作业存储在具有以下属性的集合中:状态和哈希值。 首次创建作业时,状态将处于挂起状态。我想一次允许 1 个具有状态挂起和唯一 hash_value 的作业。 假设有 hash_value 123 和状态挂起,如果我创建一个具有 hash_value 123 和状态挂起的作业,我希望触发索引错误。 但是,如果集合中只有一个 hash_value 123 和 state failed 的作业,我想允许创建作业,因为没有 hash_value 123 和 state pending。 我想我可以在创建之前先查询集合,但我只想知道这是否可以通过唯一索引来实现。谢谢
_id: 1,
state: 'pending',
hash_value: 'd1061af8b1a46bdc74329a16b05f1408f0368925'
_id: 2,
state: 'failed',
hash_value: 'd1061af8b1a46bdc74329a16b05f1408f0368925'
_id: 3,
state: 'pending',
hash_value: '405e619470ae575e83f62625d0bb3cc779bea2d5'
【问题讨论】:
-
你能提供一些示例 JSON 数据吗?
-
@WernfriedDomscheit 好的,我已经添加了它
-
这似乎是在问如何创建一个唯一的、部分的、复合索引?