Relacion entre dos documentos.

615 views
Skip to first unread message

Luis

unread,
Oct 2, 2013, 6:18:41 AM10/2/13
to mongod...@googlegroups.com

En SQL tradicional para relacionar dos tablas tengo las foreign  key por ejemplo

Persona                                              Address

Id: 1                                                      id: 10

Name luis                                           strret: Hucson

Address: 10                                       corne: Juan

 

En mongodb esto seria único document el cual Persona contiene a Address, ahora bien en caso que tenga la necesidad de hacer la relaciona de ejemplo, alguien me puede ayudar como sería en mongodb.

Muchas Gracias.

Jorge Puente Sarrín

unread,
Oct 4, 2013, 10:19:20 AM10/4/13
to mongod...@googlegroups.com
Hola Luis,

¿Exactamente deseas una relación de ese tipo Persona-Dirección? Podría estar en un sólo documento, danos más detalles y características de tus datos y de lo que tu aplicación hará con ellos.

Por lo pronto, puedes ir consultando esta página de la documentación que tiene varios patrones de cómo poder relacionar.

Saludos.


2013/10/2 Luis <lug...@gmail.com>

--
Has recibido este mensaje porque estás suscrito al grupo "MongoDB Perú" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a mongodb-lima...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a mongod...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/mongodb-lima.
Para ver este debate en la Web, visita https://groups.google.com/d/msgid/mongodb-lima/5e3cf8f7-9956-4163-96c5-adde41734641%40googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.



--
Jorge Puente Sarrín.

Yohan Graterol

unread,
Oct 5, 2013, 3:08:50 PM10/5/13
to mongod...@googlegroups.com
Por lo general recomiendan usar Documentos Embebidos, o simular una "referencia", obviamente sin foreing key porque no existe. Y la consula obviamente también sería algo más compleja, pero si quieres algo sencillo un modelo con documentos embebidos sería excelente, Además no le tengas miedo a la redundancia, el almacenamiento es barato.

Saludos!

Luis

unread,
Oct 7, 2013, 6:09:29 AM10/7/13
to mongod...@googlegroups.com

Uno de los casos que tengo en mi sistema,
Tengo un documento que tiene la lista de calles de la ciudad
_id, name

Ahora bien los clientes tiene dirección la cual se forma por la calle.

No tengo problemas por tener el documento calle en el documento Cliente, ahora cual es mi duda, por alguna razón el nombre de la calle está mal ingresado y ya tengo varios registros cliente que hace referencia a dicha calle.

En sql solo me bastaría con actualizar el nombre en la tabla calle y esto se vería reflejado automáticamente en Cliente, pero en mongo como hago de forma práctica y mantenga la consistencia de dichos datos.

Yohan Graterol

unread,
Oct 7, 2013, 9:26:58 AM10/7/13
to mongod...@googlegroups.com
Pues, lo que podrias hacer es simular lo mismo que en SQL, tienes 2 colleciones, una clientes y otra calle, y en cliente guardas el _id de calle.

Saludos!


2013/10/7 Luis <lug...@gmail.com>

--
Has recibido este mensaje porque estás suscrito al grupo "MongoDB Perú" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a mongodb-lima...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a mongod...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/mongodb-lima.

Luis

unread,
Oct 8, 2013, 5:14:03 AM10/8/13
to mongod...@googlegroups.com, yogra...@fedoraproject.org
Eso es lo que prense lo que todavía no pude es como hacer un unico find entre los dos documentos para obtener el documento Cliente y los registros del Documento Calle. Y no tener que hacer dos find para formar el objecto.

Yohan Graterol

unread,
Oct 8, 2013, 11:03:53 AM10/8/13
to mongod...@googlegroups.com

Luis

unread,
Oct 11, 2013, 2:41:10 PM10/11/13
to mongod...@googlegroups.com, yogra...@fedoraproject.org
Estoy de acurdo que hay que mirar la documentación pero el $elemMatch por lo que entiendo me permite buscar dentro de una misma coleccion por ejmplo Client.
Yo quiero buscar en varias colecciones o sea levantar datos entre Client y Address.
El ejemplo de la documentación
db.schools.find( { zipcode: 63109 },
                 { students: { $elemMatch: { school: 102 } } } )
busca dentro de la misma colección.

Pido las disculplas si no fue claro en el post anterior.

Reply all
Reply to author
Forward
0 new messages