El método T find() devolverá todas las clases definidas con los valores correspondientes.
De manera automática cargara en el Entity que esta embebido los datos del documento embebido en el correspondiente documento que esta almacenado en MongoDB.
Al realizar una consulta normal en un documento cargara todos los entitys dentro de el. (Pueden ser simples objetos utilizando la anotación @Embedded o listas de entitys).
Importante:
Para hacer búsquedas por documentos embebidos debemos indicar la opción de búsqueda con el con formato colección.atributo, como se muestra en el ejemplo 2.
Continentes continentes = new Continentes();
Optional<Continentes> c = continentesFacade.find("idcontinente", "am");
if(!c.isPresent()){
System.out.println("No hay un continente con ese codigo");
}else
{
continentes = c.get();
System.out.println(""+continentes.toString());
System.out.println("Planeta: " +continentes.getPlanetas().getPlaneta());
}
Salida:
Continentes{idcontinente=am, continente=America, planetas=Planetas{idplaneta=tr, planeta=Tierra, fecha=Tue Jan 17 23:10:49 EST 2017}}
Planeta: Tierra
Ejemplo 2 Buscar por un atributo del documento embebido
En este caso queremos buscar el documento que tiene asignado el planeta marte.
Debemos especificar el documento de busqueda: new Document("planetas.idplaneta","marte")