반응형
지난 포스팅에서 subdocument를 만들었다.
user가 triplist를 가지고있고, triplist안에는 trip을 subdocument로 가지고 있다.
이때, trip 내용을 가져오고 싶을 때 사용하는 것이 populate 이다.
router.get("/trips/:userid", (req, res) => {
userModel.find({ _id: req.params.userid }, (err, user) => {
user[0].populate({
path: 'triplist',
populate: {
path: 'trip'
}
}).then(trip => {
res.json(trip);
});
});
})
코드 설명을 하자면, 서버에서 userid를 받았다.
그리고 userModel DB에서 userid를 검색한다.
그리고 userid가 있으면, 해당 user에서 triplist를 가져오고, triplist에서 trip을 가져온다.
그러면 리턴값은 아래와 같이 triplist안에 존재하는 모든 trip의 정보가 나온다.
{
"_id": "62d91be9cebbf4c6f8be7211",
"username": "m",
"email": "m@m.com",
"triplist": [
{
"trip": {
"_id": "62da95533fd7c82eee196bff",
"useridlist": [
"62b463733197d628f983b5ec",
"62d91be9cebbf4c6f8be7211"
],
"title": "singapore",
"tag": "#happy",
"startdate": "2022-07-07",
"enddate": "2022-07-15",
"__v": 0
},
"allow": true,
"color": "MaterialColor(primary value: Color(0xff2196f3))",
"_id": "62da95533fd7c82eee196c03"
},
{
"trip": {
"_id": "62da9bbaa7349178c09faa04",
"useridlist": [
"62b915a584aed684a7961e07",
"62d91be9cebbf4c6f8be7211"
],
"title": "japan",
"tag": "#japan",
"startdate": "2022-07-27",
"enddate": "2022-07-29",
"__v": 0
},
"allow": true,
"color": "Color(0xff21f398)",
"_id": "62da9bbaa7349178c09faa08"
}
],
"createdAt": "2022-07-21T09:27:05.499Z",
"updatedAt": "2022-07-22T12:44:42.337Z"
}
반응형
'flutter' 카테고리의 다른 글
provider model for loop - flutter provider 빌드 순서 (0) | 2022.07.30 |
---|---|
A value of type 'Future<dynamic>' can't be returned from the method '' because it has a return type of 'Widget' (0) | 2022.07.28 |
mongoose subdocument (0) | 2022.07.21 |
mongoose db schema reference (0) | 2022.07.21 |
TypeError: Router.use() requires a middleware function but got a undefined (0) | 2022.07.20 |