【问题标题】:I'm struggling to write this simple SQL query with mongo我正在努力用 mongo 编写这个简单的 SQL 查询
【发布时间】:2019-02-01 09:51:38
【问题描述】:
SELECT * FROM table
WHERE aaa = 321 AND bbb NOT IN (SELECT DISTINCT bbb
                  FROM table
                  WHERE ccc = 123)

aaabbbccc 是表中文档的字段,它们都不是主键。

我知道我可以先做一个查询,然后将结果映射到一个数组中,我可以在第二个查询中使用,但是表中有很多记录,将它们全部加载到内存中生成是不可行的我需要的数组。

尝试使用 $lookup 将其全部写入单个查询中,但我无法做到:/

任何帮助将不胜感激,干杯!

【问题讨论】:

  • 'aaa' 和 'bbb' 在同一个 'table 中?
  • @Visrozar 是的,一切都在同一张桌子上

标签: mongodb nosql mongodb-query


【解决方案1】:

您可以使用以下查询。没有聚合,你可以在find的帮助下完成

db.table.find({
  aaa: 321,
  bbb: {
     $nin: await db.table.distinct("bbb", { ccc: 123 })
  }
})

请使用async/await函数获取内部查询结果。

【讨论】:

  • 谢谢!语法非常好,但这仍然会将bbb 的所有不同值加载到内存中,这会使我的应用程序在我尝试运行它时耗尽内存。 :_(
猜你喜欢
  • 2020-01-06
  • 1970-01-01
  • 1970-01-01
  • 2021-07-21
  • 1970-01-01
  • 2015-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多