SELECT * FROM table
WHERE aaa = 321 AND bbb NOT IN (SELECT DISTINCT bbb
FROM table
WHERE ccc = 123)
aaa
,bbb
和ccc
是表中文档的字段,它们都不是主键。
我知道我可以先执行一个查询,然后将结果映射到可以在第二个查询中使用的数组,但是表中有很多记录,将它们全部加载到内存中以产生结果是不可行的我需要的数组。
试图通过$ lookup来将其全部写入一个查询中,但是我却无法做到这一点:/
任何帮助将不胜感激,欢呼!
答案 0 :(得分:0)
您可以使用以下查询。如果没有聚集,则可以在查找
的帮助下进行db.table.find({
aaa: 321,
bbb: {
$nin: await db.table.distinct("bbb", { ccc: 123 })
}
})
请使用 async / await 函数获取内部查询结果。