【发布时间】:2021-11-10 09:14:27
【问题描述】:
我们将数据按国家/地区代码存储在 MongoDB 中。我们的文档如下所示,
[
{
title: '1',
US: {
data: { lastReportDate: '2021-09-09' } // will be fetched
},
GB: {
data: { lastReportDate: '2021-09-04' }
}
},
{
title: '2',
US: {
data: { lastReportDate: '2021-09-07' } // will NOT be fetched
}
},
{
title: '3',
US: {
data: null // will NOT be fetched
}
},
{
title: '4',
US: {
data: null
}
GB: {
data: { lastReportDate: '2021-09-08' } // will be fetched
},
NZ: {
data: { lastReportDate: '2021-09-04' }
}
},
{
title: '5',
GB: {
data: null
},
NZ: {
data: { lastReportDate: '2021-09-06' } // will be fetched
}
}
]
我想根据国家/地区获取最新日期的标题。
对于 EX:在上述数据库中,我们将美国的最新日期设为“2021-09-09”,因此我想在 lastReportDate 中获取与该日期匹配的所有标题。对于英国,最迟日期是“2021-09-08”,对于新西兰,最晚日期是“2021-09-06”。
我们在一份文件中包含大约 180 个国家/地区,我想达到数据库的最短时间。那么我们是否可以构建一个查询来获取不同国家/地区的最新日期,然后据此查询数据库。
【问题讨论】:
-
我可以查询数据库以获取每个国家/地区的最新日期。但我必须为每个国家这样做。那么我们能否形成一个查询,这样我就不必一次又一次地点击 DB。
-
不知道为什么应该为
NZ返回title: '4' -
是的,对不起。那是一个错字。它不应该被获取,因为新西兰的最晚日期将是“2021-09-06”。
标签: mongodb mongodb-query nosql aggregation-framework aggregate