我正在努力用mongo

时间:2019-02-01 09:51:39

标签: mongodb nosql mongodb-query

SELECT * FROM table
WHERE aaa = 321 AND bbb NOT IN (SELECT DISTINCT bbb
                  FROM table
                  WHERE ccc = 123)

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

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

试图通过$ lookup来将其全部写入一个查询中,但是我却无法做到这一点:/

任何帮助将不胜感激,欢呼!

1 个答案:

答案 0 :(得分:0)

您可以使用以下查询。如果没有聚集,则可以在查找

的帮助下进行
db.table.find({
  aaa: 321,
  bbb: {
     $nin: await db.table.distinct("bbb", { ccc: 123 })
  }
})

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