アプリケーションでのタイムゾーンのサポートを気にしない場合は、MongoDBの基本的なクエリに文字列を使用すると問題なく機能するはずです(ただし、問題が発生する場合は、実際のDate
が必要になります。 タイプ)。
ただし、後で日付計算を実行したり、日付フィールドで集計フレームワークを使用したりする場合は、フィールドが実際にはDate
である必要があります。 タイプ:
http://docs.mongodb.org/manual/reference/aggregation/ #date-operators
たとえば、$dayOfWeek
を使用できます Date
の関数 入力されたフィールド。
$substr
を使用すると、年にグループ化するなどの簡単なことができます。 ( doc
)MongoDBにありますが、結果のコードはそれほど明確ではありません(パフォーマンスも低下する可能性があります)。
大きな違いはありませんが、Date
として保存することをお勧めします 可能であれば一般的にタイプします。
docs
に表示されます 開発者がDateTime
を使用しないように警告されているPerlドライバーの場合 非常に遅いため、Perlを定期的に使用していて、集約フレームワークが大きな問題ではない場合は、数値または文字列として保存し、必要に応じて変換することをお勧めします。 Perl。
スペースが問題になる場合は、不要な文字(-
など)を削除してください ):
20130613 ->
4 bytes for length of string
8 bytes encoded as UTF-8
NULL character
それは13文字になります。 BSON
のDateTime値 一方、/ MongoDBには8バイトが必要です(Perlの$time
と同様) 関数)。
(Date
を使用した場合のパフォーマンスへの影響を確認するために、パフォーマンステストを少し行うことを強くお勧めします。 PerlでMongoDBと入力すると、通常のワークフローに影響します。)