2 / 2
May 2024

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 :
Screenshot 2024-05-02 at 17.47.33

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" ] } ] } ] } }

Hello @Rival_Wijokumoro, Welcome to the MongoDB Developer forum,

Could you please update your post with proper code formatting, It is hard to read the code and even if we copy and paste it comes with special quotes instead of double quotes ".

Refer to this formatting guide,