Вам нужно найти Sprint, используя агрегацию $ match .
Таким образом, вы можете использовать следующий пример получения маршрута:
router.get("/sprints/:id", async (req, res) => {
const id = req.params.id;
const result = await Sprint.aggregate([
{
$match: {
_id: ObjectId(id),
},
},
{
$lookup: {
from: "userstories",
localField: "Userstories",
foreignField: "_id",
as: "Userstories",
},
},
]);
res.send(result);
});
Допустим, у вас есть эти два документа Userstories:
{
"_id" : ObjectId("5ecd60f21f3c84289488d6d9"),
"Name" : "story 1",
"Date" : ISODate("2020-05-26T21:33:22.543+03:00")
},
{
"_id" : ObjectId("5ecd60fb1f3c84289488d6da"),
"Name" : "story 2",
"Date" : ISODate("2020-05-26T21:33:31.692+03:00")
},
И этот спринт-документ:
{
"_id" : ObjectId("5ecd610f1f3c84289488d6db"),
"Userstories" : [
ObjectId("5ecd60f21f3c84289488d6d9"),
ObjectId("5ecd60fb1f3c84289488d6da")
],
"Name" : "Sprint 1",
"Author" : "Author 1",
"Date" : ISODate("2020-05-26T21:33:51.928+03:00")
}
Результат для этого спринта будет таким:
[
{
"_id": "5ecd610f1f3c84289488d6db",
"Userstories": [
{
"_id": "5ecd60f21f3c84289488d6d9",
"Name": "story 1",
"Date": "2020-05-26T18:33:22.543Z",
"__v": 0
},
{
"_id": "5ecd60fb1f3c84289488d6da",
"Name": "story 2",
"Date": "2020-05-26T18:33:31.692Z",
"__v": 0
}
],
"Name": "Sprint 1",
"Author": "Author 1",
"Date": "2020-05-26T18:33:51.928Z",
"__v": 0
}
]