sql >> データベース >  >> NoSQL >> MongoDB

DateTimeオブジェクトとYYYY-MM-DD文字列のMongoDBの違い

    アプリケーションでのタイムゾーンのサポートを気にしない場合は、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と入力すると、通常のワークフローに影響します。)



    1. コハナでMongoDBを使用するにはどうすればよいですか?

    2. Mongoで$regexと$or演算子を組み合わせる

    3. MongoDBの上限付きコレクションと単調に増加するインデックス

    4. gem-mongoidのインストールは、Rubyで初期化されていない定数をスローし、irbで機能します