Ако не ви интересува поддръжката на часова зона във вашето приложение, тогава използването на низове за основни заявки в MongoDB трябва да работи добре (но ако има значение, ще искате истинска Date тип).
Въпреки това, ако по-късно искате да направите математика за дата или да използвате Aggregation Framework с вашето поле за дата, е необходимо полето действително да е Date тип:
https://docs.mongodb.org/manual/reference/aggregation/ #оператори за дата
Например, можете да използвате $dayOfWeek функция на Date въведено поле.
Вероятно бихте могли да правите някои прости неща като групиране по година, като използвате $substr (doc
) в MongoDB, но полученият код няма да е толкова ясен (нито вероятно ще работи добре).
Въпреки че не е голяма разлика, бих препоръчал да ги съхранявате като Date типове, ако е възможно като цяло.
Виждам в документи
за драйвера Perl, за който разработчиците са предупредени да не използват DateTime поради факта, че е много бавен, така че може би ако използвате Perl редовно и Aggregation Framework не е голям проблем, би било по-добре да ги съхранявате или като числа, или като низове, и да ги конвертирате, ако е необходимо в Perl.
Ако пространството е проблем, премахнете ненужните знаци (като - ):
20130613 ->
4 bytes for length of string
8 bytes encoded as UTF-8
NULL character
Това ще бъде 13 знака. Стойност на DateTime в BSON
/MongoDB изисква 8 байта от друга страна (както и Perl $time функция).
(Силно препоръчвам да направите малко тестове за производителност, за да разберете дали въздействието върху производителността от използването на Date тип в MongoDB с Perl ще повлияе на типичните ви работни процеси.)