我在此查询中合并了两个文档,并根据最新日期进行排序。
db.getCollection("filings").aggregate([
{ $sort : { PeriodEndDate : -1 } },
{ $match : {$or: [{"SubType" : "PRESS"},{"SubType" : "INTERIM"}]} },
{ $lookup: {
from: "coverages",
localField: "RepoNo", // field in the filings collection
foreignField: "RepoNo", // field in the coverage collection
as: "fromItems"}},
{ $replaceRoot: { newRoot: { $mergeObjects: [ { $arrayElemAt ["$fromItems", 0 ] }, "$$ROOT" ] } }},
{ $project: { fromItems: 0 } }])
在PeriodEndDate为最新的情况下,如何仅为每个重复的文档选择一个最新的PeriodEndDate?当我使用$ limit时,它只能限制为一个。我想限制每个具有最新日期的重复文档。 我通过“ RepoNo”确定重复项 这是两个样本文件。我只想选择第一个日期最近的
。 {
"RepoNo" : "FFF94",
"PeriodEndDate" : "2018-06-30 00:00:00.000"
},
{
"RepoNo" : "FFF94",
"PeriodEndDate" : "2018-03-31 00:00:00.000"
}