2

我有看起来像的对象:

{
  ...
  sources: {
    source_1: { [metadata about source_1] },
    source_z: { [metadata about source_z] },
    source_a: { [metadata about source_a] }
  }
}

如果文档具有来自源的数据,则具有该名称的条目存在。否则不存在。例如,这只有来自 source_a 的数据:

{
  ...
  sources: {
    source_a: { [metadata about source_a] }
  }
}

什么索引可以帮助我加快查找具有来自给定来源的数据的文档?更准确地说,我不关心源贡献了哪些数据,只关心它是否包含在内(源对象中有一个带有该键的条目)。

我应该为每个来源建立一个索引,例如{"sources.source_z": 1}

想要最高效,以免源中的所有数据都被索引,只要它的存在。

4

1 回答 1

1

如果您的来源有数百个,我会将您的文档结构更改为以下内容。否则,您必须为每个不实用的源值创建索引:

{
  ...
  sources: [
    {type: "source_1", data: {...}},
    {type: "source_z", data: {...}},
    {type: "source_a", data: {...}}
  ]
}

sources.type使用此数据结构,我将在字段上创建索引。

于 2015-09-17T15:30:30.550 回答