Relaciones 1 a 1 embebidas
La utilizamos cuando tenemos una dependencia interna de ciertos atributos que estan relacionados o que se repiten para diferentes casos. Entonces se realizaran subdocumentos que contengan esos atributos relacionados.
Casos recomendables de uso
En el 90% de los casos, cuando hay una relacion 1:1, esta suele ser embebida.
- Cuando la informacion se consulta en conjunto
- Los sub-documentos sean una dependencia directa
Por ejemplo:
Tenemos en una tienda online un usuario que tiene una direccion de su casa y otra de envio. Estas direcciones tienen varios atributos que comparten y para cada uno estan relacionados.
Entonces agrupamos estas propiedades en sub-documentos (objetos) en direccion casa y direccion de envio.
Insertar datos para embebed 1-1
db.users.insertOne({ // insertar un documento
name: "pam", // propiedad del documento
address: { // subdocumento (Embebido)
street: "Calle falsa 123", // propiedad del subdocumento
city: "Sprinfield",
zip: 1234
},
shipping_address: {
street: "Calle falsa 124",
city: "Sprinfield",
zip: "1235"
}
})
Consultar datos en embebed 1-1
db.users.find({
"address.city": "Sprinfield" // Filtrar con una propiedad de un sub-documento
})
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?