我的对象看起来像:
{
...
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对象中有一个带有该键的条目)。
我应该为每个来源制作一个索引,例如{"sources.source_z": 1}
?
想要最有效率,以便不索引源中的所有数据,只是存在它。
答案 0 :(得分:1)
如果您的资源数量达到数百个,我会将文档的结构更改为以下内容。否则,您必须为每个源值创建索引,这是不切实际的:
{
...
sources: [
{type: "source_1", data: {...}},
{type: "source_z", data: {...}},
{type: "source_a", data: {...}}
]
}
使用此数据结构,我将在sources.type
字段上创建索引。