如何使用另一个集合中的信息过滤MongoDB集合?

软件事项

我有两个收藏AccountsDebts我需要使Accounts集合中的“净节省”大于一定数量的项目。净储蓄是从帐户储蓄中减去所有债务后的储蓄。关于如何解决此问题的任何指示都将非常有帮助。

帐户收款:

{

  "AccountNumber": "A1234",
  "Savings": 1000
}
{

  "AccountNumber": "A4567",
  "Savings": 500
}

债务追收:

{

  "AccountNumber": "A1234",
  "Debt": 10,
  "Lender": "A"
}
{

  "AccountNumber": "A1234",
  "Debt": 20,
  "Lender": "B"
}
{

  "AccountNumber": "A4567",
  "Debt": 50,
  "Lender": "B"
}

净储蓄> 500的帐户

{
  "AccountNumber": "A1234",
  "NetSavings": 970
}
阿什

您可以先从Accounts集合中找到帐号,然后$inDebits集合一起使用

const accountNumbers = (await Account.find({ Savings: { $gte: 500 }})).map(({ AccountNumber }) => AccountNumber)

const debits = await Debits.find({ AccountNumber: { $in: accountNumbers }})

或使用聚合

Accounts.aggregte([
  { $lookup: {
    from: "debits",
    localField: "AccountNumber",
    foreignField: "AccountNumber",
    as: "acc"
  }},
  { $addFields: {
    NetSavings: {
      $subtract: ["$Savings", { $sum: "$acc.Debt" }]
    }
  }}
])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何根据另一个集合中存储的数组过滤Firestore中的文档?

mongodb将文档从一个集合移到另一个集合

如何使用pymongo从MongoDB复制一个集合并将其粘贴到另一个空集合?

将MongoDB(3.0)集合的子集保存到Python中的另一个集合

MongoDB如何将索引定义从一个集合复制到另一个集合?

如何有条件地从另一个集合中删除MongoDB?

猫鼬:根据另一个集合中的值过滤集合

MongoDB 3.6-如何将一个集合中的匹配项追加到另一个集合中?

使用mongoose nodejs在另一个集合mongoDB中填充集合

如何使用mongodb合并两个集合结果和另一个集合

如何获取Firebase中另一个集合的文档中的集合

如何删除一个集合中的引用文档及其从另一个引用集合中的记录

如何在一个集合中查找未被另一个集合中的文档引用的MongoDB文档?

如何将集合添加到Cloud Firestore中的另一个集合?

MongoDB过滤器集合未包含在另一个集合的array字段中

mongodb-查找逗号分隔另一个集合中的值并获取详细信息

mongodb-根据使用量计数从一个集合中获取顶级项目,作为另一个集合中的字段

根据另一个集合中的ID对mongodb集合项进行排名

使用AngularJS自定义过滤器过滤基于另一个集合的一个

Raven DB通过另一个集合中的数据过滤集合

在通过流星的publish方法提供数据之前,从另一个mongodb集合中添加信息

如何使用新对象填充集合,从另一个集合复制属性

如何获取另一个集合中引用的MongoDB文档的列表

如何基于Python中的另一个集合对集合进行排序?

Mongodb将一个集合复制到另一个集合中

如何确定一个集合是否包含Python中的另一个集合

将集合数组放入mongodb的另一个集合中

在 mongodb 中的另一个集合的 foreignField 上使用 $group 进行分组

如何从一个集合中获取数据并插入到 Nodejs 中的另一个集合中?

TOP 榜单

  1. 1

    来自Microsoft Office加载项taskpane.js的MySQL驱动程序模块的空引用

  2. 2

    使用AWS Cognito和React的仅限Facebook / Google的登录名(无用户名/密码)

  3. 3

    创建Windows Phone 8应用并将其连接到数据库的最佳方法(最好是SQL Server)

  4. 4

    为什么Java中的System.out.println()打印到控制台?

  5. 5

    卷曲函数无法解析来自bash中变量的代理

  6. 6

    是什么在Android的consumer-rules.pro和proguard-rules.pro之间的区别?

  7. 7

    设置与Apache POI Excel表散点图标记图标的颜色

  8. 8

    将Qt Pyside2与asyncio await语法一起使用?

  9. 9

    崇高的文字+蟒蛇的蟒蛇

  10. 10

    任务':app:minifyReleaseWithR8'.java.lang.NullPointerException的执行失败(无错误消息)

  11. 11

    OpenJDK的和AdoptOpenJDK的区别

  12. 12

    大型数据集缓存到Spark内存中时,“超出了GC开销限制”(通过sparklyr和RStudio)

  13. 13

    “执行测试CMAKE_HAVE_LIBC_PTHREAD”失败实际上是什么意思?

  14. 14

    使用Core 2.2中的Identity,如何在关闭浏览器15分钟后保持会话活动?

  15. 15

    React中的ForwardRefExoticComponent和ForwardRefRenderFunction有什么区别?

  16. 16

    猫鼬查找结果,然后将字段替换为findOne

  17. 17

    如何降级Google Colab的Torch版本

  18. 18

    Keras提前停止回调错误,val_loss指标不可用

  19. 19

    如何避免VSCode中的“导入路径不能以.ts扩展名结尾”错误?

  20. 20

    Nuxt.JS:如何在页面中获取路由URL参数

  21. 21

    是否有为什么会AccessibilityManager.sInstance导致内存泄漏的一个原因?

热门标签

归档