首页 > 解决方案 > 多个查找阶段,展开和匹配,并根据查找阶段的字段显示反应(但该字段存在于所有查找阶段)

问题描述

我在数据库中有 3 个收藏:礼品库存转移、礼品库存接收和礼品库存主控。我必须通过过滤礼物、开始日期和结束日期来显示礼物动态摘要。 react 中的礼品库存汇总表- 是我想在 react 中显示的方式。

我在礼品库存主收藏上使用聚合来连接礼品和主要库存数量,但日期在礼品库存转移,礼品库存接收收藏。我还使用展开阶段来展开数组,匹配阶段来比较日期。

我想从转移集合中获取转移数量和从接收集合中接收数量,但基于输入日期并将其连接到礼品库存主集合中的主要库存数量。是否可以根据这些集合中的日期显示数据?我使用下面的代码得到的结果有冗余数据,我无法使用日期显示,因为一个数组元素同时具有传输日期和执行查找的接收日期。

礼品库存大师系列:

giftCode : "1001" Branch : "00000" Quantity : 55 DamagedStock : "10" __v : 0 TransferredStock : 10

礼品转移收藏:

Received:0 GiftCode:"1001" Quantity:2 FromBranch:"00000" ToBranch:"00006" Description:"test" Date:2021-09-26T09:17:57.613+00:00

礼品接收收藏:

GiftCode:"1001" Quantity:2 FromBranch:"00000" ToBranch:"00006" Description:"test" Date:2021-09-26T09:17:57.613+00:00

等待 GiftStockMaster.aggregate ([

    {
      $match: 
          { giftCode: req.params.giftcode },
    },
    
    {
      $lookup: {
        from: "giftstockreceives",
        localField: "giftCode",
        localField: "Branch",
        foreignField: "giftCode",
        foreignField: "ToBranch",
        as: "receivedetails",
      },
    }, 
    { $unwind : "$receivedetails" } ,
    {$match: 
      {"receivedetails.Date": {"$gte":req.params.fromdate,"$lte":req.params.todate}},
    },
    
     

  {
      $lookup: {
        from: "giftredeemeds",
        localField: "giftCode",
        localField: "Branch",
        foreignField: "GiftCode",
        foreignField: "BranchCode",
        as: "redeemdetails",
      },
    }, 
    { $unwind : "$redeemdetails" } ,
    {$match: 
      {"redeemdetails.Date": {"$gte":new Date(req.params.fromdate),"$lte":new Date(req.params.todate)}},
      },
    {
      $lookup: {
        from: "giftstocktransfers",
        localField: "giftCode",
        localField: "Branch",
        foreignField: "GiftCode",
        foreignField: "FromBranch",
        
        as: "transferdetails",
      },
    }, 
     { $unwind : "$transferdetails" } , 
     {$match: 
      {"transferdetails.Date": {"$gte":new Date(req.params.fromdate),"$lte":new Date(req.params.todate)}},
     },

标签: node.jsreactjsmongodbexpress

解决方案


推荐阅读