Si no le importa la compatibilidad con la zona horaria en su aplicación, el uso de cadenas para consultas básicas en MongoDB debería funcionar bien (pero si importa, querrá una Date
real tipo).
Sin embargo, si más adelante quiere hacer cálculos de fechas o usar el marco de agregación con su campo de fecha, es necesario que el campo sea realmente una Date
tipo:
http://docs.mongodb.org/manual/reference/aggregation/ #operadores-de-fecha
Por ejemplo, podría usar el $dayOfWeek
función en la Date
campo escrito.
Probablemente podría hacer algunas cosas simples como agrupar el año usando $substr
(doc
) en MongoDB, pero el código resultante no será tan claro (ni probablemente funcionará tan bien).
Si bien no es una gran diferencia, recomendaría almacenarlos como Date
tipos si es posible en general.
Veo en los docs
para el controlador de Perl que se advierte a los desarrolladores sobre el uso de DateTime
debido al hecho de que es muy lento, por lo que tal vez si usa Perl con regularidad, y Aggregation Framework no es un gran problema, sería mejor almacenarlos como números o como cadenas, y convertirlos según sea necesario en perla
Si el espacio es un problema, elimine los caracteres innecesarios (como el -
):
20130613 ->
4 bytes for length of string
8 bytes encoded as UTF-8
NULL character
Serían 13 caracteres. Un valor DateTime en BSON
/MongoDB requiere 8 bytes por otro lado (al igual que Perl $time
función).
(Recomiendo encarecidamente que haga un poco de prueba de rendimiento para averiguar si el impacto en el rendimiento de usar una Date
escriba en MongoDB con Perl afectará sus flujos de trabajo típicos).