为了填充缓存,我需要查询在一定时间范围内已经售出门票的所有俱乐部。因此,我查询所有售出的门票并循环浏览所有门票,以找到给定期间的活跃俱乐部列表。但是,如果要对大量票证几乎每分钟运行一次繁重的计算,那么这将影响我的基础设施账单。 如何进行更有效的查询?
文档
{
id: "32r34r34r3r434r4r",
creationDate: 18909894344,
clubId: "9685ut56tu9t698t9",
type:"TICKET"
}
收藏
...
{clubId: "3e32e4r43r43r43r4",...},
{clubId: "3e32e4r43r43r43r4",...},
{clubId: "5t89u54u895tu95t8",...},
{clubId: "6t68ut986ut986ut9",...},
....
我需要得到
[
"3e32e4r43r43r43r4"
"5t89u54u895tu95t8"
"6t68ut986ut986ut9"
]
答案 0 :(得分:1)
您可以尝试一下
db.collection.aggregate([
{
$group:{
_id:null,
clubIds:{$addToSet:"$clubId"}
}
}
])
答案 1 :(得分:0)
您可以将查询传递给distinct
来做到这一点:
db.collection.distinct('clubId', query)