如何通过以下方式搜索集合中具有相同文档的以下文档。我希望能够通过“精确”搜索来搜索这些文档,前提是它们提供了所有标记/值对并且仅提供了这些标记/值对。另外,我想获得一个“非精确”搜索,该搜索返回包含所有标记/值对但可以包含其他所有标记/值对的任何文档。最后,标记/值对的组合必须是唯一的,这意味着标记/值对的确切集合可能只属于一个文档(希望使用索引)。
编辑:任何标签也只能有一个值(IE tag1只能有1个值),但是值可以多次使用。
我尝试实施此设计,并很快遇到了问题。 BSON不会保留键的顺序,因此,如果我不按完全相同的顺序提供键,它将找不到它。从那里,我尝试使用标记和值作为键值对来处理对象数组。但是我不知道如何应用保持这些唯一性的索引规则。
文档:
{
_id: xyz,
tags: {
'tag1': 'value1',
'tag2': 'value2',
'tag3': 'value3',
'tag4': 'value4'
}
}