I have query like this:
Stage 1:
{
from: “scrapetrades”,
as: “scrape”,
localField: “_id”,
foreignField: “product”,
}
Stage 2:
{
from: “scrapetradeurls”,
localField: “scrape._id”,
foreignField: “scrape”,
as: “scrape.scrape_trade_urls”,
}
Stage 3:
{
from: “scrapetradeurllists”,
localField:
“scrape.scrape_trade_urls.scrape_url_list”,
foreignField: “_id”,
as: “scrape.scrape_trade_urls.scrape_url_lists”,
}
Stage 4:
{
from: “scrapetradeurllogs”,
as: “scrape.scrape_trade_urls.scrape_url_logs”,
let: {
scrape_url_id: “$scrape_url”,
},
pipeline: [
{
$match: {
$expr: {
$eq: [
“$scrape.scrape_trade_urls._id”,
“$$scrape_url_id”,
],
},
},
},
{
$limit: 1,
},
],
}
Result from queries above showing scrape and scrape_trade_urls only Object without showing the document fields :
I want to convert result like this:
{
"_id": "6628e9ac92bd30db225907a6",
"product_name": "XXXX",
"scrape": {
"product": "6628e9ac92bd30db225907a6",
"scrape_field_1": "a",
"scrape_field_2": "b",
"scrape_trade_urls": [
{
"_id": "662a0a6fecc16d47ded9f1d1",
"scrape_trade_urls_field_1": "a",
"scrape_trade_urls_field_2": "b",
"scrape_url_list": "6629dde42e4d38c2c4c3b325",
"scrape_url_logs": ["662a27547e6ab82b8a6856ab", "662a27547e6ab82b8a6856ad"],
"scrape_list": {
"_id": "6629dde42e4d38c2c4c3b325",
"scrape_url_list_field_1": "a",
"scrape_url_list_field_2": "b"
},
"scrape_url_logs": [
{
"_id": "662a27547e6ab82b8a6856ab",
"scrape_url_logs_field_1": "a",
"scrape_url_logs_field_2": "b",
"scrape_url": [
"662a0a6fecc16d47ded9f1d1"
]
},
{
"_id": "662a27547e6ab82b8a6856ad",
"scrape_url_logs_field_1": "a",
"scrape_url_logs_field_2": "b",
"scrape_url": [
"662a0a6fecc16d47ded9f1d1"
]
}
]
}
]
}
}