将字段添加到现有阵列

时间:2016-06-24 11:07:47

标签: mongodb mongodb-query aggregation-framework

我在这里要解决另一个问题。在阵列中思考有时可能非常具有挑战性。这就是我排队的内容。这就是我的数据: -

{
"_id": { "Firm": "ABC", "year": 2014 },
"Headings": [ 
    { 
        "costHead": "MNF", 
        "amount": 500000 
    },
    { 
        "costHead": "SLS",
        "amount": 25000
    }, 
    { 
        "costHead": "OVRHD",
        "amount": 100
    }
]
}
{
"_id": { "Firm": "CDF", "year": 2015 },
"Headings": [
     { 
        "costHead": "MNF",
        "amount": 15000 
     },
     { 
        "costHead": "SLS", 
        "amount": 100500 
     }, 
     { 
        "costHead": "MNTNC", 
        "amount": 7500 
     }
]
}

如您所见,我有一个包含大量子文档的列表。 这就是我想要做的事情......我需要为此添加更多元素"标题"列表应该是: -

{
   "costHead": "FxdCost", 
   "amount": "$Headings.amount (for costhead MFC)  + $Headings.amount (for costhead OVRHD)"
}

我不确定如何制作上述内容。以下是一些挑战: -

  1. 我可以添加我想要添加的新子文档,但问题是addToSet只能在组阶段使用 - 这将是昂贵的(除非当然没有其他办法)。

    < / LI>
  2. 即使我使用addToSet,我总是要使用$运算符来引用我从JSON文件中读取的元素。现在我想在这里添加的元素(costHead:FxdCost)在我的JSON文件中不存在,因此我不能使用$运算符。

  3. 有没有人对如何解决这个问题有任何建议。这毕竟是基本的ETL。

0 个答案:

没有答案