How best to do a mapping?

Who can give me a reasonable suggestion to do a mapping that will optimize an analytics query?

My entities are: Document(single, unique instance)
Document Request(parent is a single Document, can be zero or more)
NavElement(parent is a single Document; has a PathCode field to be used as a field in the aggregation)

I need an aggregation that produces a DataTable chart showing the count of DocumentRequests for each combo of Document and PathCode, and these counts should be bucketed by the date the DocumentRequest was created.