¿Cómo puedo almacenar y consultar eventos de fechas recurrentes usando mongo?

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.

preguntado el 17 de mayo de 12 a las 20:05

1 Respuestas

¿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

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

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.