gpt4 book ai didi

mongodb聚合: How to return a the object with min/max instead of the value

转载 作者:可可西里 更新时间:2023-11-01 09:11:45 25 4
gpt4 key购买 nike

假设我的文档有一个 date 字段,我想获取聚合中第一个和最后一个出现的文档。使用 $group$min$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 来扫描数组以查找具有匹配日期的对象,这似乎可行,但我想我会看看是否有在我偶然发现不正确的方法之前,正确的方法来做到这一点。

最佳答案

您可以在此处使用 $first 以获得排序集合的第一个 (http://docs.mongodb.org/manual/reference/aggregation/first/#_S_first):

db.mycollection.aggregate([
{ $group: {
_id: 1, // for the example say I'm grouping them all ...
first: { $first: "$date" },
result: { $push: { ... } } // ... and returning them all
}}
])

您还可以使用索引对 $group 进行排序,从而提高性能。

关于mongodb聚合: How to return a the object with min/max instead of the value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14653282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com