Mongodb 如何求数组中所有元素的和
好的,我有一组对象,看起来像这样:Mongodb 如何求数组中所有元素的和,mongodb,sum,mongodb-query,aggregation-framework,Mongodb,Sum,Mongodb Query,Aggregation Framework,好的,我有一组对象,看起来像这样: { "address":{ "building":"1007", "coord":[ -73.856077, 40.848447 ], "street":"Morris Park Ave", "zipcode":"10462" }, "borough":"Bronx", "cuisine":"Bakery", "grades":[ { "date":{ "$date
{
"address":{
"building":"1007",
"coord":[
-73.856077,
40.848447
],
"street":"Morris Park Ave",
"zipcode":"10462"
},
"borough":"Bronx",
"cuisine":"Bakery",
"grades":[
{
"date":{
"$date":1393804800000
},
"grade":"A",
"score":2
},
{
"date":{
"$date":1378857600000
},
"grade":"A",
"score":6
},
{
"date":{
"$date":1358985600000
},
"grade":"A",
"score":10
},
{
"date":{
"$date":1322006400000
},
"grade":"A",
"score":9
},
{
"date":{
"$date":1299715200000
},
"grade":"B",
"score":14
}
],
"name":"Morris Park Bake Shop",
"restaurant_id":"30075445"
}
这只是这些元素集合中的一个元素。例如,如何编写MongoDB查询,以获得得分总和大于70
的餐厅
我是MongoDB新手,如果问题重复,很抱歉,但我没有找到任何有用的东西。您可以使用计算数组的和并将其放入,请尝试:
您可以使用聚合
db.collection.aggregate([
{ "$match": {
"$expr": {
"$gte": [
{ "$sum": "$grades.score" },
70
]
}
}}
])
或者使用find查询
db.collection.find({
"$expr": {
"$gte": [
{ "$sum": "$grades.score" },
70
]
}
})
$$this.grade
应该是$$this.score
?
db.collection.find({
"$expr": {
"$gte": [
{ "$sum": "$grades.score" },
70
]
}
})