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

MongoDBで日付をフォーマットする方法

    日付をDateオブジェクトとして格納するドキュメントがあり、それらを別の形式で返したい場合は、 $ dateToStringを使用できます。 集約パイプライン演算子。

    たとえば、日付を mm / dd / yyyyで返すことができます。 長いISODate()の代わりにフォーマット 分、秒、ミリ秒などを含む形式

    $ dateToString 演算子はDateオブジェクトを文字列に変換し、オプションで結果の出力の形式を指定できます。

    catsというコレクションがあるとします。 次のドキュメントを使用:

    { "_id" : 1, "name" : "Scratch", "born" : ISODate("2021-01-03T23:30:15.123Z") }
    { "_id" : 2, "name" : "Meow", "born" : ISODate("2019-12-08T04:00:20.112Z") }
    { "_id" : 3, "name" : "Fluffy", "born" : ISODate("2020-09-24T10:45:01.007Z") }

    $ dateToStringを使用できます 日付が異なる形式でそのドキュメントを返す場合。

    たとえば、日付から秒とミリ秒を削除しましょう:

    db.cats.aggregate(
       [
         {
           $project: {
              name: 1,
              formattedDate: { $dateToString: { format: "%Y-%m-%d %H:%M", date: "$born" } }
           }
         }
       ]
    )

    結果:

    { "_id" : 1, "name" : "Scratch", "formattedDate" : "2021-01-03 23:30" }
    { "_id" : 2, "name" : "Meow", "formattedDate" : "2019-12-08 04:00" }
    { "_id" : 3, "name" : "Fluffy", "formattedDate" : "2020-09-24 10:45" }

    formatを使用して日付をフォーマットすることができました パラメータ。これはオプションのパラメーターであり、0個以上のフォーマット指定子を使用して、日付のフォーマット方法を示すことができます。

    MongoDB $ dateToStringを参照してください $ dateToStringで使用できるフォーマット指定子の完全なリストについてはフォーマット指定子 オペレーター。

    dd / mm / yyyyの日付 フォーマット

    日付をdd/ mm / yyyyに変換する別の例を次に示します。 フォーマット:

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

    結果:

    { "formattedDate" : "03/01/2021" }
    { "formattedDate" : "08/12/2019" }
    { "formattedDate" : "24/09/2020" }

    日付( mm / dd / yyyy ) フォーマット

    または、 mm / dd / yyyyに入れます フォーマットの場合、最初の2つのフォーマット指定子を切り替えるだけです。

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

    結果:

    { "formattedDate" : "01/03/2021" }
    { "formattedDate" : "12/08/2019" }
    { "formattedDate" : "09/24/2020" }

    単一の日付パーツを返す

    必要な数のフォーマット指定子を含めることができます。たとえば、1つのフォーマット指定子だけを使用して、日付の年の部分だけを出力できます。

    例:

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

    結果:

    { "formattedDate" : "2021" }
    { "formattedDate" : "2019" }
    { "formattedDate" : "2020" }

    ただし、Dateオブジェクトから1つの日付部分だけを抽出する方法は他にもあることに注意してください。たとえば、 $ yearを使用できます 年を抽出する演算子。

    特定の日付部分を抽出するためのさまざまな演算子は次のとおりです。

    • $ dayOfWeek
    • $ dayOfMonth
    • $ dayOfYear
    • $ hour
    • $ isoWeek
    • $ isoWeekYear
    • $ isoDayOfWeek
    • $ミリ秒
    • $ minutes
    • $ month
    • $ second
    • $ week
    • $ year

    $ dateToPartsを使用することもできます 演算子を使用して、さまざまな日付部分をすべて独自のフィールドに分割して含むドキュメントを返します。


    1. MongoDB C#Driver 2.0でクエリをログに記録するにはどうすればよいですか?

    2. SpringBootアプリケーションでSpringSecurityとRedisを使用して現在認証されているユーザープリンシパルを取得するにはどうすればよいですか?

    3. Flask-MailとRedisキューライブラリの統合でエラーが発生する

    4. blpopはしばらくするとキューの処理を停止します