2013-10-09 55 views
2

我正在編寫一個MongoDB查詢ireport,我必須加入4個不同的集合。由於MongoDB中沒有連接,我打算使用mapReduce。問題是jasper報告的MongoDB查詢語法與通常的MongoDB查詢不同,我無法在任何地方找到mapReduce以Jaspersoft語法連接多個表。任何人都可以將我指向正確的方向嗎?加入mongodb中的集合(Jasper Reports)

+0

你可以從你使用的這個軟件運行mongo shell命令嗎? 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通過id進行搜索: {'collectionName':'joinedCollection','findQuery':{'_id':{'$ oid':'$ P !{joiningKey}'}}}