假设我的文档有一个date
字段,我想获取聚合中第一个和最后一个出现的文档。使用$group
and $min
or $max
,很容易自己获取日期,例如:
db.mycollection.aggregate([
{ $group: {
_id: 1, // for the example say I'm grouping them all ...
first: { $min: "$date" },
result: { $push: { ... } } // ... and returning them all
}}
])
这将返回如下结果:
{ _id: 1, first: ISODate(...), result: [...] }
但我想要的不是第一次约会,而是第一次约会的结果。我将如何使用管道来解决这个问题?
我一直在修改使用$project
之后扫描数组以查找具有匹配日期的对象,这似乎可以工作,但我想在我偶然发现不正确的方法之前,我想看看是否有适当的方法来做到这一点.