node.js - 获取 max updatedAt 的 X 值,聚合组
问题描述
数据库记录
[
_id: 1,
user_id: 1,
project_id: 1,
updatedAt: 2020-12-20
]
[
_id: 2,
user_id: 1,
project_id: 2,
updatedAt: 2020-12-22
]
[
_id: 3,
user_id: 1,
project_id: 3,
updatedAt: 2020-12-21
]
[
_id: 4,
user_id: 2,
project_id: 6,
updatedAt: 2020-12-20
]
[
_id: 5,
user_id: 2,
project_id: 5,
updatedAt: 2020-12-23
]
userproject.aggregate([
{
$match: {
"active":true
}
}, {
$group: {
_id: "$user_id",
updatedAt : { $max : "$updatedAt" }
}
},
{
$sort : { updatedAt: -1 }
},
{
$project: {
"_id": "$_id",
}
}
])
这是一个代码。我需要或最后更新的 project_id。我使用了 $first, $last 但没有得到需要的结果。有谁知道我应该添加什么来获得结果。
最终结果我需要什么
[
[
_id: 1,
project_id: 2
updatedAt: 2020-12-22
],
[
_id: 2,
project_id: 5
updatedAt: 2020-12-23
]
]
_id 应该给出一个 user_id 值,project_id 应该给出该特定用户的最后一个 updatedAt project_id ,最后我也需要 updateAt
解决方案
推荐阅读
- python - 在 3.6 之前的 Python 版本中没有 __set_name__ 的解决方法
- regex - Scala 正则表达式和括号
- c - 计算数组中所有元素的频率
- r - Centos 中的 cronjob r 脚本
- java - Mysql/Grails:在新创建的实体上调用 Entity.save()(不刷新)时如何初始化实体 ID?
- powershell - 展开变量并在单引号中添加结果
- c# - Linq递归查询获取所有兄弟
- python - Python 正则表达式从列表中删除除字符串之外的所有内容
- c++ - 带有具有不同类型函数指针的对象的向量
- android - 在android studio中导入项目并生成.apk