我使用聚合创建了一个变量,并希望在另一个聚合函数中使用它,但似乎没有传递值。这是我原来的var:
xi = 0
args = (0,)
answer = spo.fmin(function, x0=xi, args=args)
现在我想在这个聚合函数中使用该var:
var high_grades = db.grades.aggregate(
[
{
$group:
{
_id: "$name",
score: { $max: "$score" },
}
}
,{ $sort: {score:-1}}
]
)
var high_grades output
{ "_id" : "Pat", "score" : 97 }
{ "_id" : "Joe", "score" : 92 }
{ "_id" : "Ali", "score" : 89 }
{ "_id" : "Mo", "score" : 85 }
当我运行时,我没有收到任何错误,但这是我意想不到的结果:
var high_grades_adj = db.grades.aggregate(
[
{
$group:
{
_id: "$high_grades.id",
score: { $sum: "$high_grades.score" },
}
}
]
)
答案 0 :(得分:1)
您不应该在字段前添加$high_grades
,如果您的集合中有一个名为$high_grades
的字段,则只需执行此操作。请参阅下面的更正查询。请注意,我还将id
更改为_id
:
var high_grades_adj = db.grades.aggregate(
[
{
$group:
{
_id: "$_id",
score: { $sum: "$score" },
}
}
]
)