MongoDB 3.6-如何将一个集合中的匹配项追加到另一个集合中?

jag959

集合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), 
}
阿什

您可以在aggregationmongodb 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将集合复制到 mongoDB 中的另一个新集合

Mongodb将一个集合复制到另一个集合中

根据另一个集合中的ID对mongodb集合项进行排名

如何将 mongodb 集合复制/克隆到另一个集合?

MongoDB如何将索引定义从一个集合复制到另一个集合?

MongoDB如何将选定的示例行复制到另一个新集合中

如何使用mongodb中主集合的objectID在另一个集合中查找

将MongoDB(3.0)集合的子集保存到Python中的另一个集合

将集合数组放入mongodb的另一个集合中

如何在一个集合中查找未被另一个集合中的文档引用的MongoDB文档?

如何使用另一个集合中的信息过滤MongoDB集合?

如何将 mongodb db 集合导出到另一个 js 文件?

根据mongodb中另一个数组字段的值将数组字段添加到集合中

mongodb将文档从一个集合移到另一个集合

mongoDB 从一个集合中查找并保存在另一个集合中

如何使用同一数据库中另一个集合的数据创建 mongoDB 集合

使用mongoose nodejs在另一个集合mongoDB中填充集合

如何有条件地从另一个集合中删除MongoDB?

如何获取另一个集合中引用的MongoDB文档的列表

如何在 mongoDB 中查询每个文档的另一个集合

将一个集合的所有列数据复制到mongodb中的另一个集合中

如何查看3个不同的列以将一个公共数字与另一个数据框的一个列进行匹配以合并到数据中(如果没有匹配项追加)?

MongoDB 使用另一个集合中的另一个字段更新字段

MongoDB-嵌入,将一个集合插入另一个

如何使用mongodb合并两个集合结果和另一个集合

在MongoDB中仅添加另一个集合中的字段

从MongoDB中的另一个集合中增加价值

MongoDB无法在NodeJS中的另一个文件中获取集合

使用聚合管道在MongoDB中将一个集合中的功能添加到另一个中