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

MongoDBで日付を文字列に変換する3つの方法

    MongoDBには、日付を日付として保存できるDateBSONタイプがあります。

    必要に応じて、日付を文字列として保存することもできます。

    さらに一歩進んで、日付を文字列に変換することもできます。

    この記事では、MongoDBで日付を文字列に変換する3つの方法を紹介します。

    サンプルデータ

    この記事の例では、catsというコレクションの次のドキュメントを使用しています。 :

    {
    	"_id" : 1,
    	"name" : "Scratch",
    	"born" : ISODate("2021-01-03T23:30:15.123Z")
    }

    bornに注意してください フィールドは日付です。次の例では、さまざまな集計パイプライン演算子を使用して、このフィールドを文字列に変換します。

    $dateToString オペレーター

    $dateToString 集約パイプラインオペレーターは、開始するのに最も明白な場所です。

    その名前が示すように、その唯一の目的は、日付を文字列に変換することです(そして結果を返します)。

    例:

    db.cats.aggregate(
       [
         {
           $project: {
             _id: 0,
              dateString: { $dateToString: { format: "%Y-%m-%dT%H:%M:%S.%LZ", date: "$born" } }
           }
         }
       ]
    )

    結果:

    { "dateString" : "2021-01-03T23:30:15.123Z" }

    ここでは、結果の文字列の形式を指定するための形式文字列を提供しました。この場合、%Y-%m-%dT%H:%M:%S.%LZを使用しました 、これはデフォルトの形式です。フォーマットを指定しなかった場合、これは使用されたはずのフォーマットです。

    結果の文字列に合わせて、これらのフォーマット指定子を移動できます。

    たとえば、次のようにすることができます:

    db.cats.aggregate(
       [
         {
           $project: {
             _id: 0,
              dateString: { $dateToString: { format: "%d/%m/%Y", date: "$born" } }
           }
         }
       ]
    )

    結果:

    { "dateString" : "03/01/2021" }

    MongoDB $dateToStringを参照してください この演算子の詳細については。

    $toString オペレーター

    $toString 集計パイプライン演算子は$dateToStringに似ています 、さまざまなタイプから変換できることを除いて、日付からの変換だけに限定されません。

    しかし、私たちの目的のために、私たちは日付から変換しています。

    例:

    db.cats.aggregate(
       [
         {
           $project: {
             _id: 0,
              dateString: { $toString: "$born" }
           }
         }
       ]
    )

    結果:

    { "dateString" : "2021-01-03T23:30:15.123Z" }

    この演算子には形式を指定するオプションがないため、形式はそのまま返されます。

    MongoDB $toStringを参照してください 詳細と例については。

    $convert オペレーター

    $convert オペレーターは、あるタイプと別のタイプの間で変換するために特別に設計されました。

    input パラメータは、変換するフィールドとtoを指定します パラメータは、変換するタイプを指定します。

    例:

    db.cats.aggregate(
      [
        {
          $project:
            { 
              result: 
              {
                $convert: { 
                  input: "$born", 
                  to: "string",
                  onError: "An error occurred",
                  onNull: "Input was null or empty" 
                }
              }
            }
        }
      ]
    )

    結果:

    { "_id" : 1, "result" : "2021-01-03T23:30:15.123Z" }

    $convertに注意してください 演算子はonErrorも受け入れます およびonNull パラメータ。エラーまたはnullが発生した場合に使用するメッセージを提供できます。 価値。これにより、集計操作全体が停止するのを防ぎ、出力ドキュメント内でユーザーフレンドリーなエラーメッセージを表示できます。

    MongoDB $convertを参照してください 詳細と例については。


    1. MongoDBとC#ドライバーを使用してサブドキュメントコレクションをクエリする方法

    2. 日付に基づいてクエリを返す

    3. トップMongoDBリソース

    4. mongodbで複合インデックスを構築する方法