Como hacer un join

30 views
Skip to first unread message

Luis

unread,
Sep 7, 2014, 7:04:32 AM9/7/14
to mongod...@googlegroups.com
Que tal preciso ayuda con esto tengo dos documentos, y quiero hacer un join para unificar la respuesta, les paso estructura basica

conductor
{
  "_id" : "12345678",
  "name" : "Test",
  "status" : "AVAILABLE",
  "auto" : {
     "_id" : "1",
    "number" : "9000",
  },
  "lastLogin" : ISODate("2014-09-07T10:13:12.768Z")
}

Auto
{
  "_id" : "1",
  "alfaPlate" : "AAA",
  "number" : "9000"
}

La respuesta que me gustaría obtener seria así

Auto-Conductor
{
  "_id" : "1",
  "alfaPlate" : "AAA",
  "number" : "9000",
  "conductor":{
  "_id" : "12345678",
  "name" : "Test",
  "status" : "AVAILABLE",
  "auto" : {
     "_id" : "1",
    "number" : "9000",
  },
  "lastLogin" : ISODate("2014-09-07T10:13:12.768Z")
  }
}

La estructura de los datos no se las estoy pasando completa solo una parte para que se tenga idea de que quiero hacer.
El documento auto tiene más elementos porque se realizan diferentes tareas.

Lo que buscao hacer es lo siguiente, cuando busco un auto también quiero saber que conductor esta en ese instante manejando el auto y retornar un documento que unifique los datos del auto y el conductor. El  objecto conductor no lo tengo en el auto, y si el auto en el conductor.
Y no quiero tener el objecto completo del auto en el conductor por temas de diseño y tareas que se realizan sobre el auto. Por eso es que no busco directo en el conductor y de esta forma recuperaria todo.

Ahora lo que estoy haciendo es dos consultas para obtener lo resultados que quiero, pero es lo que no quiero hacer, quiero poder hacer una sola consulta para poder obtener toda la información.

Como puedo hacer el equivalente a un join de sql.

Muchas gracias.

Gildus

unread,
Sep 7, 2014, 10:34:15 AM9/7/14
to mongod...@googlegroups.com
Creo que la idea inicial es que tengas la coleccion Auto-Conductor, no hacer relaciones como lo hacemos normalmente en base de datos, recuerda que esto es noSQL.

--
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 mensajes, envía un correo electrónico a mongodb-lima...@googlegroups.com.
Para publicar 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 esta conversación en el sitio web, visita https://groups.google.com/d/msgid/mongodb-lima/78f56476-a25b-40e9-ab8a-4c8d75d61fe1%40googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.



--
El árbol que servirá para imprimir  este  papel, tardará 7 años en crecer. Por favor no imprimas este mensaje si no es necesario.  Recuerda:  “Re-use, Reduzca y Recicle”.
Reply all
Reply to author
Forward
0 new messages