mongodb - 如何在mongodb中获取子集合的聚合

标签 mongodb mongoose mongodb-query aggregation-framework mongodb-aggregation

我有一个这样的数据结构:

{
  "_id": "order1",
  "transactions": [
    {
      "amount": 100,
      "type": "payment"
    },
    {
      "amount": -10,
      "type": "refund"
    }
  ]
}

我想要获得金额总和,即 100+(-10) = 90。我是 mongodb 的新手。有人可以帮我写查询吗?

最佳答案

您可以将聚合与$unwind一起使用

.aggregate([
{$unwind:"$transactions"},
{$group: {_id:"$_id", total: {$sum: "$transactions.amount"}}}
])

关于mongodb - 如何在mongodb中获取子集合的聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39850401/

相关文章:

node.js - Mongoose insertMany 限制

mongodb - 从 MongoDB 中删除重复项

MongoDB - 从对象内的数组中查找数据

MongoDB - 在连接字段上包含(LIKE)查询

mongodb - 时间间隔内的Mongo聚合

php - Laravel jenssegers/laravel-mongodb ownsTo 关系抛出错误

reactjs - userData.name 未显示用户名

java - Mongo Java 驱动程序 3.6.1 - 如何将 json 数组结构化字符串解析为 BasicDBList

node.js - 通过 Mongoose 模式传递硬编码值

javascript - node.js中异步函数的递归调用