我有一个包含多个客户,月份等的集合。
每个月我都需要针对集合运行一系列查询来检索指标 - 基本上是一堆计数。
这些查询中的大多数具有相同的4或5个过滤器,每个查询还会更改1-2个过滤器。
//standard filters:
{ client: "ABC Corp",
environment: "Production",
device: "true",
registered: "true"
}
//special filters:
{ type: "typeA",
screen: "screen1" }
{ type: "typeA",
screen: "screen2" }
在MSSQL中,我会创建一个包含4个标准过滤器的视图,并重复查询该视图,应用额外的1-2个过滤器来检索所需的度量标准。
有关MongoDB或基本JS方法可以使用的任何建议吗?我的目标是避免使用相同的标准过滤器反复敲击集合。
由于 V
答案 0 :(得分:0)
您可以在聚合框架中使用$ out运算符来实现此目的。
$out阶段可以将结果输出到新集合
例如:
db.collection.aggregate([
{
$match:
{
client: "ABC Corp",
environment: "Production",
device: "true",
registered: "true"
}
},
{
$out: "new_collection"
}
])
然后,您可以在 new_collection 上运行其他查询。
每次在$ out阶段使用时,都会重新创建“view”集合,但您在该集合中定义的任何索引都将保持不变。