一尘不染

MongoDB-获取集合中每个组具有最大属性的文档

node.js

我的数据如下所示:

session, age, firstName, lastName
1, 28, John, Doe
1, 21, Donna, Keren
2, 32, Jenna, Haze
2, 52, Tommy, Lee
..
..

我想获取每个会话中最大的(按年龄)的所有行。因此,对于上述输入,我的输出如下所示:

sessionid, age, firstName, lastName
1, 28, John, Doe
2, 52, Tommy, Lee

因为约翰在会话= 1组中年龄最大,而汤米在会话= 2组中年龄最大。

我需要将结果导出到文件(csv),并且其中可能包含很多记录。

我该如何实现?


阅读 337

收藏
2020-07-07

共1个答案

一尘不染

您可以尝试以下使用max属性的聚合查询:http
:
//docs.mongodb.org/manual/reference/operator/aggregation/max/

db.collection.aggregate([
   $group: {
       "_id": "$session",           
       "age": { $max: "$age" }
     },
   { $out : "max_age" }
])

结果应该输出到新的集合max_age中,然后可以将其转储到csv中。

注意:它将仅提供会话和最大年龄,并且不会返回其他字段。

2020-07-07