集合1-发票行集合2-税行
案例:1个发票行可以有多个关联的税项。
如何获得1发票行记录以将其每个匹配的税项附加到该记录?
发票行和税项之间有一个匹配键。现在,我的汇总将创建2个结果发票行记录(具有匹配税款的重复发票行),而不是将匹配税款附加到单个发票行记录中。
发票行样本凭证...
{
"UniqueID" : NumberInt(3851963),
"InvNum" : NumberInt(35602582),
"Location" : "035",
"InvoiceDate" : ISODate("2017-07-15T12:00:00.000+0000"),
"LINEITEM" : NumberInt(1),
"CUSTID" : "001595",
"DEPTID" : "035360",
"PRODID" : "003600",
"ProdDesc" : "MISC MERCHANDISE",
}
税号示例文件(需要同时在上面的发票行中附加)...税号文件1
{
"InvoiceDate" : "7/15/2017 12:00:00 AM",
"Location" : "035",
"InvNum" : NumberInt(35602582),
"LineItem" : NumberInt(1),
"UniqueID" : NumberInt(1),
"taxCode" : "mu48",
"taxrate" : NumberInt(2),
}
税项凭证2
{
"InvoiceDate" : "7/15/2017 12:00:00 AM",
"Location" : "035",
"InvNum" : NumberInt(35602582),
"LineItem" : NumberInt(1),
"UniqueID" : NumberInt(1),
"taxCode" : "mu48",
"taxrate" : NumberInt(2),
}
您可以在aggregation
mongodb 3.6及更高版本中使用以下内容
db.invoice.aggregate([
{ "$lookup": {
"from": "tax",
"let": { "invNum": "$InvNum", "lINEITEM": "$LINEITEM" },
"pipeline": [
{ "$match": {
"$expr": {
"$and": [
{ "$eq": ["$InvNum", "$$invNum"] },
{ "$eq": ["$LineItem", "$$lINEITEM"] }
]
}
}}
],
"as": "taxes"
}}
])
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句