I'm trying to JOIN 3 tables in my express-mongo project. I have a table called Product LIKE this:
Product:
_id:5f92a8dfad47ce1b66d4473b
name:"Freno 1"
createdFrom:5f648f7d642ed7082f5ff91f
category:5f92a00c4637a61a397320a1
description:"Freni di tutti i tipi"
sellingPrice:1050
purchasePrice:350
And I have to extract the available quantity after sum and subtract the quantity from other 2 tables: purchaseorders and salesorders
purchaseorders
_id:5f930c6c6817832c0d5acbb4
items:[
{
_id:5f930c6c6817832c0d5acbb5
product:5f92abaf17ec621c1da4f4f9
quantity:10
purchasingPrice:1500
discount:300
},
{
_id:5f930c6c6817832c0d5acbb6
product:5f92a8dfad47ce1b66d4473b
quantity:7
purchasingPrice:1500
discount:300
}]
salesorders
_id:5f930c6c6817832c0d5acbb4
items:[
{
_id:5f930c6c6817832c0d5acbb5
product:5f92abaf17ec621c1da4f4f9
quantity:3
sellingPrice:1500
discount:300
},
{
_id:5f930c6c6817832c0d5acbb6
product:5f92a8dfad47ce1b66d4473b
quantity:3
sellingPrice:1500
discount:300
}]
Purchaseorders and salesorders have be designed to contains different product in same order.
I'm trying to combine this 3 tables to have a result like this:
[
{_id: 5f92a8dfad47ce1b66d4473b,
name: "Freno 1",
quantity: 4 },
etc.. with all other products
]
I wanna sum all quantities in purchaseorders and subtract the sum of quantity of the salesorders.
I'm trying to use aggregation starting FROM Product table like this:
let result = await Product.aggregate([
{
$lookup: {
from: "purchaseorders",
localField: "_id",
foreignField: "items.product",
as: "purchaseorders"
}
},
{
$lookup: {
from: "salesorders",
localField: "_id",
foreignField: "items.product",
as: "salesorders"
}
},
{
$unwind: "$purchaseorders"
},
{
$unwind: "$purchaseorders.items"
},
{
$unwind: "$salesorders"
},
{
$unwind: "$salesorders.items"
},
{
$group: {
_id: "$_id"
}
}
])
Thanks who tries to help me!!