MongoDB: Как выполнить запрос к результату другого запроса (вложенные запросы)? - PullRequest
3 голосов
/ 21 декабря 2010

Мне нужно применить набор фильтров (запросов) к коллекции.По умолчанию MongoDB применяет оператор AND ко всем запросам, переданным в функцию find.Вместо целых AND мне нужно применять каждый запрос последовательно (один за другим).То есть мне нужно выполнить первый запрос и получить набор документов, выполнить второй запрос к результату первого запроса и т. Д.

Возможно ли это?

db.list.find({..q1..}).find({..q2..}).find({..q3..});

Вместо:

db.list.find({..q1..}, {..q2..}, {..q3..});

Зачем мне это нужно?

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

1 Ответ

2 голосов
/ 21 декабря 2010

Да, это возможно в MongoDB. Вы можете написать вложенные запросы согласно требованию. Даже в своем приложении я создал вложенные запросы MongoDb. Если вы знакомы с синтаксисом SQL, сравните его с в синтаксиса sql:

     select cname from table where cid in (select .....)

Таким же образом вы можете также создавать вложенные запросы MongoDB для разных коллекций.

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