У меня есть 3 коллекции в моем mongoDB
- Пользователь (имя, адрес и т. Д. c)
- Задача (имя, значок, уполномоченный)
- UserTask (User.ObjectId, Task.ObjectId, дата)
Коллекция пользователей:
{
"users": [
{
"name": "Bill",
"phone": "345"
},
{
"name": "Steve",
"phone": "123"
},
{
"name": "Elon",
"phone": "567"
}
]
}
Коллекция задач, например:
{
"tasks": [
{
"name": "Run 100m",
"icon": "run"
},
{
"name": "Walk 1 hour",
"icon": "walk"
},
{
"name": "Jog 30 minutes",
"icon": "jog"
}
]
}
UserTasks:
{
"_id": "5e72fec..",
"user": "5e72fa4..",
"task": "5e72fbac..",
"date": "2020-03-03T05:10:10.000Z",
"createdAt": "2020-03-19T05:10:37.027Z",
"updatedAt": "2020-03-19T05:10:37.027Z",
"__v": 0
},
{
"_id": "5e72fed3..",
"user": "5e72fa4e..",
"task": "5e72fbac..",
"date": "2020-03-12T05:10:10.000Z",
"createdAt": "2020-03-19T05:10:43.296Z",
"updatedAt": "2020-03-19T05:10:43.296Z",
"__v": 0
},
{
"_id": "5e72fed6..",
"user": "5e72fa..",
"task": "5e72fb..",
"date": "2020-03-15T05:10:10.000Z",
"createdAt": "2020-03-19T05:10:46.057Z",
"updatedAt": "2020-03-19T05:10:46.057Z",
"__v": 0
},
{
"_id": "5e72feda...",
"user": "5e72fa4..",
"task": "5e72fb..",
"date": "2020-03-07T05:10:10.000Z",
"createdAt": "2020-03-19T05:10:50.785Z",
"updatedAt": "2020-03-19T05:10:50.785Z",
"__v": 0
},
пользователь и задача содержат идентификатор объекта в коллекции пользовательских задач. Я хочу получить ответ от пользовательских задач, как показано ниже:
{
"userTasks": [
{
"name": "Walk",
"icon": "style",
"assignee": "Steve",
"log": [
{
"name": "Bill",
"date": "2018-03-15"
},
{
"name": "Elon",
"date": "2018-02-27"
},
{
"name": "Steve",
"date": "2018-01-02"
}
]
},
{
"name": "Run",
"icon": "running",
"assignee": "Elon",
"log": [
{
"name": "Bill",
"date": "2019-03-12"
},
{
"name": "Steve",
"date": "2018-03-03"
},
{
"name": "Elon",
"date": "2018-03-01"
}
]
}
]
}
Как мне этого добиться? Это лучший подход в Mongodb? Я привык к реляционной базе данных (SQL et c)