我需要将值修改为MongoDB中聚合框架的一部分。
以下是我的代码: -
db.coln.aggregate(
{$match: {"year" : "2010","companyName" :/ABC/}},
{$unwind:"$hierarchy"},
{$unwind:"$hierarchy.Details" },
{
$group:
{ "_id":
{"companyName": "$companyName",
"year": "$year",
"costHead": "$hierarchy.originalName"},
"total": { "$sum": "$hierarchy.Details.values" }}
},
{$project: {_id:0, "Firm":"$_id.companyName", "Year":"$_id.year","costHead":"$_id.costHead", "Total":"$total"}})
在上面的聚合框架中。这是我的结果集: -
{Firm:" ABC",Year:" 2010",costHead:" Mnfc",Total:5000}
现在,结果很好,除了第3个字段 - costHead:Mnfc。我想取代" Mnfc"与"制造"。
我尝试了多种方法。
我尝试在小组部分使用(cond和if),但这会弄乱分组。
我尝试使用cond,如果在项目中,它只是产生什么,因为$ projection运算符只能投影从先前级别传递的内容而不生成它。
这里的想法。 任何帮助都会被贬低。
此致 马里奥
答案 0 :(得分:1)
再次尝试在$ projection中使用cond。它似乎对我很好:
{$project: {_id:0, "Firm":"$_id.companyName", "Year":"$_id.year",
"costHead": { $cond: { if: { $eq: [ "$_id.costHead", "Mnfc"] }, then: "Manufacturing", else: "$_id.costHead" } },
"Total":"$total"
}}