在我的Meteor应用程序中,我有一个包含大量文档的集合,每个文档都有一个
现在我想使用一些标签(例如
因为第一个文档有两个匹配项
目前我知道可以使用
所需查询是什么样的?
tags
字段,基本上是这样的:{..., tags: ["a","b","c"], ...},
{..., tags: ["a","b","d"], ...},
{..., tags: ["b","c","e"], ...},
{..., tags: ["x","y","z"], ...},
....
现在我想使用一些标签(例如
["a","d","y"]
)在服务器上查询集合,并获取至少匹配一个标签的所有结果,并按匹配标签的数量排序结果集。因此,在示例集中,结果应为:{..., tags: ["a","b","d"], ...},
{..., tags: ["a","b","c"], ...},
{..., tags: ["x","y","z"], ...}
因为第一个文档有两个匹配项
"a"
和"d"
,而另外两个元素只有一个匹配项"a"
和"y"
。目前我知道可以使用
$in
来匹配至少有一个匹配项的所有文档,可以使用$all
获取每个标签都匹配的所有文档,但这似乎不够。如果需要,还可以使用MongoDB的聚合框架。所需查询是什么样的?
{"_id": "test-id", {"val" {"tags": ["a", "b", "c"]}}}
。我该如何查询它? - Harish Kommuri