Jeśli nie zależy Ci na obsłudze stref czasowych w Twojej aplikacji, użycie ciągów znaków do podstawowych zapytań w MongoDB powinno działać dobrze (ale jeśli ma to znaczenie, będziesz potrzebować prawdziwej Date
typ).
Jeśli jednak później zechcesz wykonać obliczenia na datach lub użyć struktury agregacji z polem daty, konieczne jest, aby pole to faktycznie było Date
typ:
http://docs.mongodb.org/manual/reference/aggregation/ #operatorzy-dat
Na przykład możesz użyć $dayOfWeek
funkcja na Date
wpisane pole.
Prawdopodobnie możesz zrobić kilka prostych rzeczy, takich jak grupowanie na rok, używając $substr
(doc
) w MongoDB, ale wynikowy kod nie będzie tak przejrzysty (ani prawdopodobnie nie będzie działał równie dobrze).
Chociaż nie jest to duża różnica, zalecam przechowywanie ich jako Date
typy, jeśli to możliwe ogólnie.
Widzę w dokumentacji
dla sterownika Perl, przed którym programiści są ostrzegani przy użyciu DateTime
ze względu na to, że jest bardzo powolny, więc może jeśli regularnie używasz Perla, a Aggregation Framework nie stanowi dużego problemu, lepiej byłoby przechowywać je jako liczby lub jako ciągi i konwertować je w razie potrzeby w Perl.
Jeśli spacja stanowi problem, usuń niepotrzebne znaki (takie jak -
):
20130613 ->
4 bytes for length of string
8 bytes encoded as UTF-8
NULL character
To byłoby 13 znaków. Wartość DateTime w BSON
Z drugiej strony /MongoDB wymaga 8 bajtów (podobnie jak Perl $time
funkcja).
(Zdecydowanie polecam przeprowadzić trochę testów wydajności, aby dowiedzieć się, czy wpływ na wydajność przy użyciu Date
wpisz MongoDB z Perlem wpłynie na twoje typowe przepływy pracy.)