I've successfully integrated BIRT with MongoDB - it works perfectly well.
The idea is this - define a scripted data source in BIRT, then define a data set that using that data source. The data set has an "open" event in which you place the call to Mongo Java Driver and execute your query against MongoDB (and obtain a DB Cursor). Then in the "fetch" event you basically get the next value of the Cursor, filling data from the Cursor into the data set.
This is possible because BIRT scripts utilize RHINO Javascript engine which has Java integration. Place the MongoDB java driver in the classpath and start coding :)