2017-02-14 1 views
0

В шаблоне агрегации MongoDB мы можем работать со многими документами и суммировать их в новых структурах данных путем сортировки, фильтрации, удаления и добавления элементов, чтобы создавать новые документы извлекается как запрос.Может ли агрегация MongoDB запрашивать другие документы? Другими словами: рекурсивный поиск в стороне mongodb, а не в клиенте

Предположим, например, что мне нужно найти значение слова в словаре. Если я найду слово «лошадь» в словаре, я получу что-то вроде этого: «лошадь - животное». Затем я хотел бы знать, что такое животное, поэтому я снова ищу слова в словаре для обозначения понятия «животное».

Если бы я сделал это как питон, мне нужно было бы найти смысл «собаки», дождаться его прибытия, затем прочитать его и извлечь слово «животное». Тогда мне придется запрашивать значение «животное», ждать его прибытия и т. Д. ...

Есть ли способ делегировать эту рекурсивную задачу целиком MongoDB, так что мне не нужно запрашивать и ждать каждого слова? Я думал, что «агрегат» решит, но, похоже, он может отображать документы только из запроса в новые документы, а не запрашивать данные из новых.

ответ

0

Механизм агрегации Mongo db работает пошагово. Сначала вы выбираете данные из коллекции и применяете Group, Match, Project, Sort и т. Д. В выбранном наборе данных. Данные преобразуются на основе операции, применяемой к нему на каждом шаге. Следующий шаг только получает преобразованные данные из предыдущего. То, что вы запрашиваете, требует полного набора данных для каждого экземпляра, а это значит, что запрос на возврат обратно в базу данных не так.

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

+0

Таким образом, невозможно работать с принятым документом и запрашивать дополнительные документы со всей стороны сервера с или без агрегации? –

+0

Проверьте это -> https://docs.mongodb.com/manual/tutorial/store-javascript-function-on-server/. Это может помочь. – JayKrish

Смежные вопросы