Это данные из Mongodb (Задача. json)
{
"username": "john",
"taskId": "001",
"date": "2020-02-18T20:14:19.000Z",
},
{
"username": "david",
"taskId": "001",
"date": "2020-02-18T21:48:19.000Z",
},
{
"username": "john",
"taskId": "002",
"date": "2020-02-15T20:20:32.000Z",
}
... many more
Что я пытаюсь получить
- Я пытаюсь написать запрос, который возвращает
taskId
со списком последних users
, выполнивших задачу (отсортировано по date
- по убыванию). - Я хочу только трех последних пользователей который выполнил задачу, чтобы показать ее в списке, таким образом, массив
user
не должен содержать больше 3 пользователей на задачу
Вот пример, который я создал, о том, как я хочу получить ответ быть:
{
"tasks": [
{
"taskid": "001",
"users": [
{
"username": "david",
"date": "2020-02-18T21:48:19.000Z"
},
{
"username": "john",
"date": "2020-02-18T20:14:19.000Z"
}
]
},
{
"taskid": "002",
"users": [
{
"username": "john",
"date": "2020-02-15T20:20:32.000Z"
}
]
}
]
}
Мой прогресс на данный момент:
router.route("/latest-tasks").get((req, res) => {
Task.find()
.sort({ date: "desc" })
.then(doc =>
res.status(200).json({
taskId: doc.taskId,
list: doc.map(doc => {
return {
username: doc.username,
date: doc.date
};
})
})
)
.catch(err => res.status(400).json("Error: " + err));
});