如何在使用$ group而不是$ project的脚本中包含静态数据?

时间:2015-12-03 03:48:46

标签: mongodb aggregation-framework

我想将静态数据添加到文档中,就像文档标题中的元数据一样,我稍后会用它来查询。

我可以通过使用$ literal运算符包含使用$ project的脚本轻松完成此操作,如:

@contacts.each do |contact|
  contact.contact_events_count
end

但我需要为使用$ group的文档执行此操作。如何将“objectClass”:“账户余额”作为静态数据输入添加到以下脚本中?

db.std_sourceBusinessData.aggregate(
            { $unwind: "$accountBalances" },
            { $match: {"accountBalances": "Sales"}},
{ $project: {_id: 0,objectClass: {$literal: "Service Data"}, accountBalances: 1}}
//      , {$out : "entity_datapoints"}
)

谢谢,马特

1 个答案:

答案 0 :(得分:0)

在这种情况下,我将从另一个论坛慷慨提供的答案中回答我自己的问题。

db.raw_originBusinessData.aggregate([
{ "$match": {objectOriginAPI : "Balance Sheet"}}
,{ "$unwind": "$objectRawOriginData.Reports" }
,{ "$unwind": "$objectRawOriginData.Reports.Rows" }
,{ "$unwind": "$objectRawOriginData.Reports.Rows.Rows" }
,{ "$group": {"_id": "$_id","accountBalances": { "$push": "$objectRawOriginData.Reports.Rows.Rows.Cells.Value" }
}},
{$project: {objectClass: {$literal: "Account Balances"},accountBalances: "$accountBalances"}}
])

无法相信有些人,我很确定我问了一个愚蠢的问题,但我按照规则构建了它,我想要的只是有人幽默我并给我一个答案,而不仅仅是按下负按钮继续前进