Se non ti interessa il supporto del fuso orario nella tua applicazione, l'utilizzo di stringhe per le query di base in MongoDB dovrebbe funzionare correttamente (ma se è importante, ti consigliamo una vera Date
tipo).
Tuttavia, se in seguito desideri eseguire calcoli sulla data o utilizzare il Framework di aggregazione con il campo della data, è necessario che il campo sia effettivamente una Date
digita:
http://docs.mongodb.org/manual/reference/aggregation/ #data-operatori
Ad esempio, potresti usare il $dayOfWeek
funzione sulla Date
campo digitato.
Probabilmente potresti fare alcune cose semplici come raggruppare l'anno usando $substr
(doc
) in MongoDB, ma il codice risultante non sarà così chiaro (né probabilmente funzionerà altrettanto bene).
Anche se non è una grande differenza, ti consiglio di salvarli come Date
tipi se possibile in generale.
Vedo nei documenti
per il driver Perl che gli sviluppatori sono avvisati dall'usare il DateTime
a causa del fatto che è molto lento, quindi forse se usi Perl regolarmente e Aggregation Framework non è un grosso problema, faresti meglio a salvarli come numeri o come stringhe e convertirli secondo necessità in Perl.
Se lo spazio è un problema, rimuovi i caratteri non necessari (come -
):
20130613 ->
4 bytes for length of string
8 bytes encoded as UTF-8
NULL character
Sarebbero 13 caratteri. Un valore DateTime in BSON
/MongoDB richiede invece 8 byte (come farebbe il Perl $time
funzione).
(Ti consiglio vivamente di eseguire un po' di test delle prestazioni per scoprire se l'impatto sulle prestazioni dell'utilizzo di una Date
digitare MongoDB con Perl avrà un impatto sui tuoi flussi di lavoro tipici.)