¿Cómo puedo almacenar y consultar eventos de fechas recurrentes usando mongo?
Frecuentes
Visto 2,580 veces
4
Me gustaría permitir que mis usuarios configuren un horario para sus eventos. Podría ser un solo día o, por conveniencia, me gustaría permitirles especificar un evento recurrente (similar a una cita de Outlook).
Almacenar un solo día sería bastante fácil, pero ¿cómo podría almacenar y consultar un evento recurrente? No necesito hacer tiempos, ya que simplemente los almacenaría por separado, y si necesitaran un tiempo diferente, les pediría que crearan otro evento. Así que no: Todos los miércoles a las 5 y los jueves a las 3.
Ejemplos:
Todos los lunes, martes, miércoles, jueves, viernes, todas las semanas
Cada miercoles cada semana
Cada segundo martes del mes
Pregunté esto hace unos años: ¿Cómo puedo almacenar y consultar datos de programación? pero estaba usando una solución SQL (SQL Server). Sin embargo, quiero usar Mongo, por lo que un puerto está en orden.
1 Respuestas
3
¿Qué hay de almacenar la fecha original y la información sobre la recurrencia? Es un campo ilimitado para experimentos y puedes inventar tu propio "formato de evento recurrente". Por ejemplo:
event : {
date: 17 May 2012 22.45,
recurring: "+2d" # meaning, every second day after the date
}
contestado el 17 de mayo de 12 a las 20:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas mongodb mongodb-query or haz tu propia pregunta.
Este es el tipo de enfoque que estoy usando en mi proyecto mongo; Usar identificadores que se puedan comparar. Puede filtrar hasta cierto punto, y luego podría implicar algún filtrado del lado del cliente. En python, uso el módulo dateutil para reconstruir un objeto de fecha recurrente. - jdi
Entonces, ¿puede dar algunas consultas básicas? Soy un novato mongo total. ¿Cómo mostraría para la próxima semana qué eventos se avecinan? - pelota
No puedes hacer eso a través de Mongo. Es la lógica empresarial la que debe residir en la aplicación, no en la base de datos. - Zaur Nasibov
@BasicWolf: las consultas de datos aún deben estar en la capa de la base de datos. No puede esperar que la aplicación obtenga TODOS los eventos y luego realice la consulta del lado del cliente. Eso no sería una buena idea. - Noel Llevares
@dashmug, no estoy de acuerdo, la fecha recurrente es algo de la lógica comercial, no una capa de datos. - Zaur Nasibov