Consultas cruzadas

Tengo un Add collection en On Cloud llamado Libro de visitas, alli guardo los movimientos diarios de una visitante, estos registros generan su propios ID pero en un campo en ella yo guardo el ID del visitante. En otra Add Collection On Cloud llamada Visitantes alli guardo todos los Visitantes con sus fotos esta collection en question tiene un ID por cada visitante: finalmente hago un ejemplo
VISITANTE BD
1 Pedro Perez

LIBRO VISITA BD
x1 Pedro Perez 1
x2 Pedro Perez 1
x3 Pedro Perez 1

De alguna forma quiero Hacer una consulta a revés: es decir quiero Buscar en la Tabla LIBRO VISITA BD todos los registros obviamente quiero agruparlos por ID VISITANTE y luego que obtenga esta informacion cruzarla con la tabla VISITANTE BD la cual el ID VISITANTE del libro es igual ID VISITANTE BD y de alli contruir una Add Collection UI con la FOTO y los datos del visitante esta informacion ya está en la VISITANTE BD. sucede que pudiera hacerlo a revez pero suponiento que en el libro hay un visitante que no pertenece al grupo consultado igual me lo va a traer y logicamente si no es tu visita no tiene porque verlo. Como pudiera hacer eso?

¡Hola! :wave:

Entiendo tu situación. Parece que estás aplicando lógica relacional en una base de datos NoSQL, lo cual puede complicar un poco las cosas. Te sugiero considerar una estrategia diferente: agregar los datos del visitante directamente en tu colección de libros de visita. Esto eliminará la necesidad de hacer consultas adicionales y simplificará tu flujo de trabajo.

Sin embargo, si prefieres mantener tu estructura actual, puedes utilizar un bucle foreach o un codeCompute para identificar y filtrar las ID de visitantes duplicadas. Luego, puedes realizar consultas adicionales para obtener la información específica del usuario y almacenarla en un app value o page value. Finalmente, concatenar esta información con tu libro de visitas para una visualización más completa.

¡Saludos cordiales!

Andress Ortiz
QuickDev

Recuerda que en QuickDev estamos aquí para ayudarte con tus aplicaciones. Si necesitas asistencia adicional o estás interesado en nuestros servicios de desarrollo de aplicaciones como funciones o apps completas, no dudes en contactarnos.
Estamos disponibles en WhatsApp al +593987633680 o wa.me/593987633680.

Gracias Andres la primera opcion me gusta sin embargo esto me retorna otro problema como ejemplo: una visita que viene todos los dias debo guardar la foto del visitante 365 veces lo cual esto me puede generar un coste de almacenamiento bastante importante. Si lo hago al revez es decir crear un libro de visitas la cual guarda la foto del visitante y una sub lista relacionada con cada visitante tengo el problema que luego cuando quiero que un usuario vea las personas que visitaron su casa se va a traer toda la visitas aun cuando nunca han hido a su casa y esto no es correcto. la idea es que cada visitante vea su visita. Ahora bien tu me diras puedes crear un libro de visita por propietario? y eso me trae otro problema ya que hay un administrador que en algun momento quiere ver todas las visitas del edificio, y alli es el problema que no podra hacerlo a menos que entre en cada uno de los propietario. Ahora bien que alternativa tengo?

Entiendo tus preocupaciones con respecto al almacenamiento y la eficiencia en la estructuración de tus datos. Es cierto que guardar la foto del visitante múltiples veces podría generar un costo significativo en términos de almacenamiento. Sin embargo, quiero aclararte un punto importante: cuando sugiero agregar los datos del visitante directamente en tu colección de libros de visita, me refiero a guardar la URL donde se encuentra la imagen del visitante, no la imagen en sí misma. Esto reducirá significativamente el espacio de almacenamiento utilizado.

Además, en una base de datos NoSQL, la redundancia de datos suele ser beneficiosa para mejorar el rendimiento y simplificar las consultas. Al duplicar cierta información en diferentes colecciones, puedes optimizar tus consultas y mejorar la experiencia del usuario.

En cuanto a tu preocupación sobre que cada visitante solo vea su propia visita, esto se puede abordar mediante el filtrado adecuado de los datos. Podemos implementar filtros para que cada usuario solo vea las visitas que le conciernen directamente, sin tener acceso a la información de otros propietarios.

Respecto a la posibilidad de ver todas las visitas de un edificio, definitivamente podemos implementar funcionalidades para ello. Podemos diseñar consultas específicas que permitan al administrador acceder a un resumen de todas las visitas en el edificio, sin la necesidad de entrar en cada propiedad individualmente.

Si estás interesado en explorar estas alternativas con más detalle o necesitas más ayuda para encontrar la mejor solución para tu caso específico, no dudes en contactarnos. Estamos aquí para ayudarte a optimizar tu sistema y garantizar una experiencia fluida para tus usuarios.

Saludos cordiales,

Andress Ortiz
QuickDev

Recuerda que en QuickDev estamos comprometidos en encontrar las mejores soluciones para tus necesidades. Si deseas más información o tienes alguna pregunta adicional, estamos disponibles en WhatsApp al +593987633680 o wa.me/593987633680.

la opcion de filtrado me gusta pero no he logrado hacer un filtrado tan grande solo alcanzo al hacer 2 filtrados y en cuanto a la imagen siendo siempre la misa hago referencia a la que ya esta en la base de dato pero no si guardaarla en otra tabla me duplica la carga porque en ambas tablas tiene el mismo link de la foto

Como te explique en NoSQL la redundancia de datos es buena ya que si quieres hacerla como tu quieres tendrías que poner un Fer each y concatenar los objetos haciéndola mas lenta a tu app