martedì 24 settembre 2013

MongoDB + Morphia + Model to Map/Reduce Result with complex id

Alle volte capita di avere una collection risultante da una Map Reduce con un field id complesso.
Dopo varie ricerche ed esperimenti la soluzioni si trova agganciando come id una classe in embed:

la collection risultante della mapReduce:

{
"_id" : {
"time" : "2011-03",
"url" : "www.test.it",
"fast" : "c80"
},
"value" : 12
}



la classe di modello di result:

@Entity(value = "Stats.CountSingleUrl", noClassnameStored = true)
public class MRResult {

    @Id
    @Embedded
    @Indexed(value = IndexDirection.ASC, unique = true, dropDups = true)
    private IdObject id;
    private String value;

   ///... GETTER e SETTER

    public static class IdObject {

        private String time;
        private String url;
        private String fast;

     ///... GETTER e SETTER
    }
}