Я изо всех сил пытаюсь написать этот простой запрос SQL с Монго - PullRequest
0 голосов
/ 01 февраля 2019
SELECT * FROM table
WHERE aaa = 321 AND bbb NOT IN (SELECT DISTINCT bbb
                  FROM table
                  WHERE ccc = 123)

aaa, bbb и ccc являются полями для документов в таблице, и ни одно из них не является первичным ключом.

Я знаю, что мог бы сначала сделать один запрос, а затем отобразить результаты в массив, который я мог бы использовать во втором запросе, но в таблице много записей, и все их невозможно загрузить впамять для создания массива, который мне нужен.

Пробовал играть с $ lookup, чтобы написать все это в одном запросе, но я не смог этого сделать: /

Любая помощь будет оценена, ура!

1 Ответ

0 голосов
/ 01 февраля 2019

Вы можете использовать ниже запрос.Без агрегации вы можете сделать это с помощью find

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

. Пожалуйста, используйте async / await , чтобы получить результат внутреннего запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...