我想运行一些查询,获取第一个X文档和完整数据集上的构面数据。
是否可以在一个查询中进行查询,或者我必须对此进行两个查询?(一个用于文档,一个用于构面数据)
例如,将以下两个统一为一个查询:
db.mycollection.find({tenant:"tenant1", class: "myclass"}).limit(20)
db.mycollection.aggregate( [ {$match: {tenant:"tenant1", class: "myclass"}},
{$facet: { "typeFacet": [{$sortByCount: "$type"}]}])
以下聚合将获取阶段$limit
中与筛选器匹配的文档的前20个(由所指定)文档,作为“ xDocs”构面结果$match
。“ typeFacet”构面将应用$sortByCount
。
该$facet
管道阶段允许运行多个方面(在这种情况下,集合中的所有文件)在同一组的文件并行查询。
db.collection.aggregate( [
{ $facet: {
xDocs: [
{ $match: { tenant: "tenant1", class: "myclass" } },
{ $limit: 20 }
],
typeFacet: [
{ $sortByCount: "$type" }
]
} }
] )
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句