mongodb:在可选字段上实现特殊的唯一约束

mongodb:在可选字段上实现特殊的唯一约束,mongodb,indexing,unique-constraint,Mongodb,Indexing,Unique Constraint,我有一个mongodb集合(标签)。 标记由“名称”字段和“值”字段标识。 “值”是可选的 我想让这对夫妇(“姓名”、“价值”)独一无二,除此之外,我不希望以下两个文档共存: {"name": "foo"} {"name": "foo", "value": "bar"} 创建唯一索引db.tags.createIndex({name:1,value:1},{unique:true})是不够的,因为它将允许我作为示例给出的两个文档共存 是否有任何mongodb特性允许我实现此约束?还是必须在应用

我有一个mongodb集合(标签)。 标记由“名称”字段和“值”字段标识。 “值”是可选的

我想让这对夫妇(“姓名”、“价值”)独一无二,除此之外,我不希望以下两个文档共存:

{"name": "foo"}
{"name": "foo", "value": "bar"}
创建唯一索引db.tags.createIndex({name:1,value:1},{unique:true})是不够的,因为它将允许我作为示例给出的两个文档共存

是否有任何mongodb特性允许我实现此约束?还是必须在应用程序级别实现它


谢谢

为什么不在名称字段上有一个唯一的索引呢?我想允许以下两个文档共存{“name”:“foo”,“value”:“bar_1”}和{“name”:“foo”,“value”:“bar_2”}。但是如果存在
{“name”:“foo”}
(没有“value”字段),则不允许使用具有相同“name”的其他文档。我希望我说得很清楚^^