在下面的查询中,我成功获取了所有out = subprocess.check_output(["java -jar test.jar"])
数组的总长度,但我也尝试对这些数组中每个对象的"
字段求和,并且该字段当前返回零。我在做什么错了?
contribution
文档如下:
contribution_receipt_amount
我的输出看起来像这样:
doc.aggregate(
[
{ $unwind: '$contributions' },
{
$group: {
_id: candidate.candidate_id,
contributions: { $sum: 1 },
total: { $sum: '$contribution_receipt_amount' }
}
}
],
{ allowDiskUse: true }
)
答案 0 :(得分:1)
这里的收获是字段contribution_receipt_amount
是contributions
文档的子元素。因此,您应使用.
表示法来访问子文档元素。
"contributions" : {
"entity_type_desc" : "INDIVIDUAL",
"contribution_receipt_amount" : 109.2
}
这是更新的查询
doc.aggregate(
[
{ $unwind: '$contributions' },
{
$group: {
_id: candidate.candidate_id,
contributions: { $sum: 1 },
total: { $sum: '$contributions.contribution_receipt_amount' }
}
}
],
{ allowDiskUse: true }
)
如尼尔建议的那样
doc.aggregate(
[
{
$group: {
_id: candidate.candidate_id,
contributions: { $sum: 1 },
total: { $sum: {$sum: "$contributions.contribution_receipt_amount"} }
}
}
],
{ allowDiskUse: true }
)