mongodb#sum查询嵌套文档内容
时间: 2023-07-19 19:18:22 浏览: 100
可以使用MongoDB的聚合框架中的$unwind和$group操作来查询嵌套文档内容的sum。假设我们有以下文档结构:
```
{
"_id" : ObjectId("5f7c8dce1c2f5fbbf4e6b6e2"),
"name" : "Alice",
"orders" : [
{
"product" : "apple",
"quantity" : 3,
"price" : 2.5
},
{
"product" : "banana",
"quantity" : 2,
"price" : 1.5
}
]
}
```
我们可以使用以下聚合管道查询每个用户的订单总金额:
```
db.collection.aggregate([
{$unwind: "$orders"},
{$group: {_id: "$name", total: {$sum: {$multiply: ["$orders.quantity", "$orders.price"]}}}}
])
```
在上面的聚合管道中,$unwind操作将orders数组展开为单独的文档,$group操作根据用户名进行分组,并使用$sum操作计算每个用户的订单总金额。$multiply操作用于计算每个订单的金额。
相关问题
mongodb¥sum查询嵌套文档内容的个数
可以使用MongoDB的聚合框架中的$unwind和$group操作来查询嵌套文档内容的个数。假设我们有以下文档结构:
```
{
"_id" : ObjectId("5f7c8dce1c2f5fbbf4e6b6e2"),
"name" : "Alice",
"orders" : [
{
"product" : "apple",
"quantity" : 3,
"price" : 2.5
},
{
"product" : "banana",
"quantity" : 2,
"price" : 1.5
}
]
}
```
我们可以使用以下聚合管道查询每个用户的订单数量:
```
db.collection.aggregate([
{$unwind: "$orders"},
{$group: {_id: "$name", count: {$sum: 1}}}
])
```
在上面的聚合管道中,$unwind操作将orders数组展开为单独的文档,$group操作根据用户名进行分组,并使用$sum操作计算每个用户的订单数量。在这种情况下,$sum操作的参数是1,表示每个展开的文档被计算一次,从而计算每个用户的订单数量。
阅读全文