你可以有一些可以在 mongo shell 中执行的 JS/shell 脚本来获取集合名称:
var startDate= new Date("2021-09-01");
var endDate = new Date("2021-09-09");
var collections=[];
var startTime = startDate.getTime(), endTime = endDate.getTime();
//Then you could loop from one to another incrementing loopTime by 86400000 (1000*60*60*24) - number of milliseconds in one day:
for(let loopTime = startTime; loopTime <= endTime; loopTime += 86400000)
{
var loopDay=new Date(loopTime)
//generate collection for each day
collections.push("COLLECTIONXXXX_"+loopDay.toISOString().slice(0, 10).replace(/-/g, '_'))
}
print(JSON.stringify(collections))
输出:
["COLLECTIONXXXX_2021_09_01","COLLECTIONXXXX_2021_09_02","COLLECTIONXXXX_2021_09_03","COLLECTIONXXXX_2021_09_04","COLLECTIONXXXX_2021_09_05","COLLECTIONXXXX_2021_09_06","COLLECTIONXXXX_2021_09_07","COLLECTIONXXXX_2021_09_08","COLLECTIONXXXX_2021_09_09"]
在上面的示例中,我们有开始日期(2021_09_01)和结束日期(2021_09_09),并且我们已经生成了所有集合名称并存储在数组中,现在您可以使用此集合数组中的集合名称并运行您的聚合联合。