2013-10-09 3 views
2

Я пишу запрос MongoDB в iireport, в котором я должен присоединиться к 4 различным коллекциям. Поскольку в MongoDB нет объединений, я планирую пойти с mapReduce. Проблема в том, что синтаксис запросов MongoDB для отчетов jasper отличается от обычных запросов MongoDB, и я не могу найти где-либо mapReduce для объединения нескольких таблиц в синтаксис Jaspersoft. Может кто-то указать мне верное направление?Объединение коллекций в mongodb (отчеты Jasper)

+0

Можете ли вы просто запустить команды оболочки манго из этого программного обеспечения, которое вы используете? В mongo нет функции «join», но вы можете просто запустить запрос: db.collection1.find(). ForEach (function (doc) {db.collection2.save (doc)}); И делайте это 3 раза. См. Аналогичный вопрос: http://stackoverflow.com/questions/5681851/mongodb-combine-data-from-multiple-collections-in-to-one-how –

ответ

0

Была такая же проблема. Не знаю, может ли это решение быть применено в вашем сценарии, но я использовал простые вложенные записи, передавая значение поля соединения для представления в отчете и делая отдельный запрос там (что-то вроде DBRef).

Сначала передайте присоединение к подзаголовку> «joiningKey» = $ F {joiningKey} (не забудьте создать этот параметр в подзаголовке).

чем в подотчета вы можете сделать любой запрос, который вы хотите, включая поиск по идентификатору, используя joinigKey: { 'CollectionName': 'joinedCollection', 'findQuery': { '_ ID': { '$ подъязычная': '$ P ! {joiningKey} '}}}

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