0
Mongo部分过滤器是否工作范围广泛,还是能够应用于每个单独的数组项目?独特的部分索引在Mongo中的数组中如何工作
使用案例:
架构
{ references: [
{source: ObjectId("57dc688a1410a81ba0fcafcd"), sourceId: 1234},
{source: ObjectId("57dc688a1410a81ba0fcafee"), sourceId: 5678},
]}
我唯一索引,上面写着源和的sourceID应该是唯一的。这意味着没有两个文档和单个文档可以具有相同的Source和SourceId。
我需要将它作为部分键,因为有时SourceId还不存在。所以我想添加过滤器: {“references.sourceId”:{“$ exists”:true}}
但是文档可能在单个文档上有多个引用 - 一个文档有一个sourceId,一个没有。我希望带有sourceId的数组项目得到索引,并且一个没有被忽略。
这样做的正确方法是什么?如果过滤器必须是文档范围,是否有任何方法可以指定忽略文档,如果任何引用缺少sourceId?目前,mongo不接受运算符中的部分索引过滤器的逻辑否定。