Als u niet geïnteresseerd bent in tijdzone-ondersteuning in uw toepassing, dan zou het gebruik van strings voor basisquery's in MongoDB prima moeten werken (maar als het er wel toe doet, wilt u een echte Date
type).
Als u echter later datumberekeningen wilt doen of het Aggregation Framework met uw datumveld wilt gebruiken, is het noodzakelijk dat het veld daadwerkelijk een Date
is. typ:
http://docs.mongodb.org/manual/reference/aggregation/ #date-operators
U kunt bijvoorbeeld de $dayOfWeek
. gebruiken functie op de Date
getypt veld.
U kunt waarschijnlijk enkele eenvoudige dingen doen, zoals groeperen op jaar door $substr
. te gebruiken (doc
) in MongoDB, maar de resulterende code zal niet zo duidelijk zijn (en waarschijnlijk ook niet zo goed presteren).
Hoewel het geen enorm verschil is, raad ik aan ze op te slaan als Date
typen indien mogelijk in het algemeen.
Ik zie in de docs
voor het Perl-stuurprogramma waarvoor ontwikkelaars worden gewaarschuwd voor het gebruik van de DateTime
vanwege het feit dat het erg traag is, dus misschien als je Perl regelmatig gebruikt, en het Aggregation Framework geen groot probleem is, kun je ze beter als getallen of als strings opslaan en ze naar behoefte converteren in Perl.
Als spatie een probleem is, verwijder dan onnodige tekens (zoals de -
):
20130613 ->
4 bytes for length of string
8 bytes encoded as UTF-8
NULL character
Dat zouden 13 tekens zijn. Een DateTime-waarde in BSON
/MongoDB vereist daarentegen 8 bytes (net als de Perl $time
functie).
(Ik raad u ten zeerste aan een beetje prestatietests uit te voeren om erachter te komen of de prestatie-impact van het gebruik van een Date
typ MongoDB met Perl heeft invloed op uw typische workflows.)