Documento Embebido

Un documento embebido es aquel que su contenido se almacena completamente dentro de otro documento, para definir el entity debemos utilizar la anotación @Embedded que indicara al framework que se trata de un documento embebido.Acompañado por la definición del entity. private Entity entity.

@Getter
@Setter
public class Continentes {
@Id
private String idcontinente;
private String continente;
@Embedded
private Planetas planetas;
}

Controller

Continentes continentes = new Continentes();
continentes.setIdcontinente("am");
continentes.setContinente("America");
Planetas  planetas  = planetasRepository.find("idplaneta","tr");
continentes.setPlanetas(planetas);
if (continentesRepository.save(continentes)) {
}

Documento generado

Contientes {

"_id" : ObjectId\("587e7119a6cca934f26c69e9"),

"idcontinente" : "am",

"continente" : "America",

"planetas" : {

        "idplaneta" : "tr",

        "planeta" : "Tierra"

}

}

Listas Embebidas

Una lista embebida es un conjunto de documentos del mismo tipo que se almacenan dentro de otro documento en una colección. Se representa por la anotación @Embedded acompañado por la definición del list de entity. private List<Entity> entity

Entity

@Getter
@Setter
public class Continentes {
@Id
private String idcontinente;
private String continente;
@Embedded
private List<Planetas> planetas;
}

Controller

Continentes continentes = new Continentes();
continentes.setIdcontinente("am");
continentes.setContinente("America");
Planetas  p1 = planetasRepository.findBy(planetas);
Planetas  p2 = planetasRepository.findById(new Document("idplaneta","mr");
Planetas  p3 = planetasRepository.findById(new Document("idplaneta","jp");
List list = new ArrayList<>();
list.add(p1);
list.add(p2);
list.add(p3);
continentes.setPlanetas(list);
if (continentesRepository.save(continentes)) { }

Documento Generado

Continentes{ "_id" : ObjectId("587e764fa6cca9373a3c37a7"),
"idcontinente" : "am",
"continente" : "America",
"planetas" : [
{
"idplaneta" : "tr",
"planeta" : "Tierra"
},
{
"idplaneta" : "mr",
"planeta" : "Marte"
},
{
"idplaneta" : "jp",
"planeta" : "Jupiter"
}
]
}

Last updated