我有一组看起来像这样的数据:
{
"name": "A document",
"version": "1.0",
"attributes":
[
{
"name": "a",
"values": ["1", "2"]
},
{
"name": "b",
"values": ["3", "4"]
}
]
}
然后,对于我的查询,我获得了与attributes
具有相同结构的数据。但可能有很多,并有各种不同的名称和价值观。 a 和 b 可能是其中的一部分,但可能还有 c ["5", "6"]
或 d ["1", "3"]
。
我想要的是匹配数据库中所有属性对象与查询中任何给定属性匹配的所有文档。
因此在数据库文档中可能有2个属性,在查询中我给出了6个属性,2个属性必须在这6个属性中找到2个匹配。
我发现的另一个问题是,我认为同样的问题是:MongoDB Query with Java. Count matches in Array而且我也倾向于采用类似的解决方案;只是过滤查询中的名称,然后使用流/指针在代码中进行微调,以减少内存使用量。