Jika Anda memiliki dokumen yang menyimpan tanggal sebagai objek Tanggal, tetapi Anda ingin mengembalikannya dalam format yang berbeda, Anda dapat menggunakan $dateToString
operator pipa agregat.
Misalnya, Anda mungkin ingin tanggal dikembalikan dalam mm/dd/yyyy
format sebagai ganti ISODate()
long yang panjang format yang mencakup menit, detik, milidetik, dll
$dateToString
operator mengonversi objek Date menjadi string, dan secara opsional memungkinkan Anda menentukan format untuk output yang dihasilkan.
Contoh
Misalkan kita memiliki koleksi yang disebut cats
dengan dokumen sebagai berikut:
{ "_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") }
Kita dapat menggunakan $dateToString
untuk mengembalikan dokumen tersebut dengan tanggal dalam format yang berbeda.
Misalnya, mari kita hapus detik dan milidetik dari tanggal:
db.cats.aggregate(
[
{
$project: {
name: 1,
formattedDate: { $dateToString: { format: "%Y-%m-%d %H:%M", date: "$born" } }
}
}
]
)
Hasil:
{ "_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" }
Kami dapat memformat tanggal dengan menggunakan format
parameter. Ini adalah parameter opsional yang memungkinkan Anda menggunakan nol atau lebih penentu format untuk menunjukkan bagaimana tanggal harus diformat.
Lihat MongoDB $dateToString
Penentu Format untuk daftar lengkap penentu format yang dapat digunakan dengan $dateToString
operator.
Tanggal dalam dd/mm/yyyy
Format
Berikut contoh lain yang mengubah tanggal menjadi dd/mm/yyyy
format:
db.cats.aggregate(
[
{
$project: {
_id: 0,
formattedDate: { $dateToString: { format: "%d/%m/%Y", date: "$born" } }
}
}
]
)
Hasil:
{ "formattedDate" : "03/01/2021" } { "formattedDate" : "08/12/2019" } { "formattedDate" : "24/09/2020" }
Tanggal dalam mm/dd/yyyy
Format
Atau untuk memasukkannya ke dalam mm/dd/yyyy
format, kita cukup mengganti dua penentu format pertama di sekitar:
db.cats.aggregate(
[
{
$project: {
_id: 0,
formattedDate: { $dateToString: { format: "%m/%d/%Y", date: "$born" } }
}
}
]
)
Hasil:
{ "formattedDate" : "01/03/2021" } { "formattedDate" : "12/08/2019" } { "formattedDate" : "09/24/2020" }
Mengembalikan Satu Bagian Tanggal
Anda dapat menyertakan penentu format sebanyak atau sesedikit yang Anda inginkan. Misalnya, Anda dapat menggunakan hanya satu penentu format untuk menampilkan bagian tahun saja dari tanggal.
Contoh:
db.cats.aggregate(
[
{
$project: {
_id: 0,
formattedDate: { $dateToString: { format: "%Y", date: "$born" } }
}
}
]
)
Hasil:
{ "formattedDate" : "2021" } { "formattedDate" : "2019" } { "formattedDate" : "2020" }
Meskipun, ingatlah bahwa ada cara lain untuk mengekstrak hanya satu bagian tanggal dari objek Tanggal. Misalnya, Anda dapat menggunakan $year
operator untuk mengekstrak tahun.
Berikut adalah berbagai operator untuk mengekstrak setiap bagian tanggal tertentu:
$dayOfWeek
$dayOfMonth
$dayOfYear
$hour
$isoWeek
$isoWeekYear
$isoDayOfWeek
$millisecond
$minute
$month
$second
$week
$year
Anda juga dapat menggunakan $dateToParts
operator untuk mengembalikan dokumen yang berisi semua berbagai bagian tanggal yang dipisahkan ke dalam bidangnya sendiri.