Si vous ne vous souciez pas de la prise en charge du fuseau horaire dans votre application, l'utilisation de chaînes pour les requêtes de base dans MongoDB devrait fonctionner correctement (mais si cela importe, vous voudrez une vraie Date
type).
Cependant, si vous voulez plus tard faire des calculs de date ou utiliser le cadre d'agrégation avec votre champ de date, il est nécessaire que le champ soit en fait une Date
saisissez :
http://docs.mongodb.org/manual/reference/aggregation/ #date-opérateurs
Par exemple, vous pouvez utiliser le $dayOfWeek
fonction sur la Date
champ saisi.
Vous pourriez probablement faire des choses simples comme le groupe sur l'année en utilisant $substr
(doc
) dans MongoDB, mais le code résultant ne sera pas aussi clair (et ne fonctionnera probablement pas aussi bien).
Bien que ce ne soit pas une énorme différence, je vous recommande de les stocker en tant que Date
types si possible généralement.
Je vois dans la docs
pour le pilote Perl contre lequel les développeurs sont avertis d'utiliser le DateTime
en raison du fait qu'il est très lent, donc peut-être que si vous utilisez Perl régulièrement, et que le cadre d'agrégation n'est pas un gros problème, vous feriez mieux de les stocker sous forme de nombres ou de chaînes, et de les convertir au besoin dans Perle.
Si l'espace est un problème, supprimez les caractères inutiles (tels que le -
):
20130613 ->
4 bytes for length of string
8 bytes encoded as UTF-8
NULL character
Ce serait 13 caractères. Une valeur DateTime dans BSON
/MongoDB nécessite 8 octets d'autre part (comme le ferait Perl $time
fonction).
(Je vous recommande fortement de faire quelques tests de performances pour savoir si l'impact sur les performances de l'utilisation d'une Date
taper dans MongoDB avec Perl aura un impact sur vos flux de travail typiques.)