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