2012-05-17 3 views
3

Je voudrais autoriser mes utilisateurs à configurer un calendrier pour leurs événements. Il pourrait s'agir d'un seul jour, ou par commodité, je voudrais leur permettre de spécifier un événement récurrent (similaire à un rendez-vous Outlook).Comment puis-je stocker et interroger des événements de date récurrents à l'aide de mongo?

Le stockage d'une seule journée serait assez facile, mais comment puis-je stocker et interroger un événement récurrent? Je n'ai pas besoin de faire de temps, car je devais simplement stocker cela séparément, et s'ils avaient besoin d'un moment différent, je les ferais juste créer un autre événement. Donc pas: Tous les mercredis à 5 et jeudi à 3.

Exemples:

Chaque lundi, mardi, mer, jeu, ven, chaque semaine

Chaque semaine wed chaque

Chaque deuxième mardi du mois

J'ai demandé cela il y a quelques années: How can I store and query schedule data? mais il utilisait une solution SQL (SQL Server). Je veux utiliser Mongo si un port est en ordre.

Répondre

2

Que diriez-vous de stocker la date d'origine et des informations sur la récurrence? C'est un champ illimité pour les expériences et vous pouvez inventer un "format d'événement récurrent" de votre choix. Par exemple:

event : { 
    date: 17 May 2012 22.45, 
    recurring: "+2d" # meaning, every second day after the date 
} 
+0

C'est en quelque sorte l'approche que j'utilise dans mon projet mongo; En utilisant des identifiants qui peuvent être comparés. Vous pouvez filtrer dans une certaine mesure, ce qui peut impliquer un filtrage côté client. En python, j'utilise le module dateutil pour reconstruire un objet date récurrent. – jdi

+0

Alors, pouvez-vous donner quelques requêtes de base? Je suis un mongo newb total. Comment pourrais-je montrer pour la semaine prochaine quels événements vont se produire? – rball

+0

Vous ne pouvez pas faire cela via Mongo. C'est la logique métier qui doit résider dans l'application, pas dans la base de données. –

Questions connexes