MongoDB menyediakan berbagai opsi untuk mengekstrak bagian tanggal dari tanggal.
Artikel ini menyajikan 3 cara untuk mengembalikan bagian minggu dari tanggal di MongoDB.
Contoh Data
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:12Z") } { "_id" : 3, "name" : "Fluffy", "born" : ISODate("2020-09-24T10:30:00Z") }
Contoh berikut menunjukkan berbagai opsi untuk mengembalikan bagian minggu dari born
bidang dokumen tersebut.
$week
Operator
$week
operator mengembalikan minggu dalam setahun untuk tanggal sebagai angka antara 0 dan 53.
Oleh karena itu, kita dapat menjalankan kode berikut untuk mengembalikan minggu dari born
bidang dalam dokumen di atas.
db.cats.aggregate(
[
{
$project:
{
_id: 0,
birthWeek: { $week: "$born" }
}
}
]
)
Hasil:
{ "birthWeek" : 1 } { "birthWeek" : 49 } { "birthWeek" : 38 }
Anda juga dapat menentukan zona waktu saat menggunakan $week
operator.
Lihat MongoDB $week
untuk informasi dan contoh lebih lanjut.
$dateToString
Operator
$dateToString
operator mengonversi objek tanggal menjadi string menurut format yang ditentukan pengguna. Oleh karena itu, pengguna dapat menentukan bahwa hanya bagian minggu yang dikembalikan jika diperlukan.
Ada penentu format untuk setiap bagian tanggal. Sehubungan dengan bagian minggu dari tanggal, %U
penentu format mengembalikan minggu dalam setahun, dan %V
penentu format mengembalikan minggu dalam setahun dalam format ISO 8601.
Contoh:
db.cats.aggregate(
[
{
$project: {
_id: 0,
birthWeek: { $dateToString: { format: "%U", date: "$born" } },
birthWeekISO: { $dateToString: { format: "%V", date: "$born" } }
}
}
]
)
Hasil:
{ "birthWeek" : "01", "birthWeekISO" : "53" } { "birthWeek" : "49", "birthWeekISO" : "49" } { "birthWeek" : "38", "birthWeekISO" : "39" }
Lihat MongoDB $dateToString
untuk informasi dan contoh lebih lanjut.
Lihat juga MongoDB $dateToString
Penentu Format untuk daftar penentu format yang dapat digunakan dengan operator ini.
$isoWeek
Operator
Jika Anda perlu mengembalikan minggu dalam format ISO 8601, gunakan $isoWeek
. Tahun ISO 8601 dimulai dengan Senin minggu 1 dan berakhir dengan Minggu minggu terakhir.
Contoh:
db.cats.aggregate(
[
{
$project:
{
_id: 0,
birthIsoWeek: { $isoWeek: "$born" }
}
}
]
)
Hasil:
{ "birthIsoWeek" : 53 } { "birthIsoWeek" : 49 } { "birthIsoWeek" : 39 }
Hasil ini berbeda dengan saat kami menggunakan $week
operator.
Berikut adalah contoh yang menunjukkan perbedaannya.
db.cats.aggregate(
[
{
$project:
{
_id: 0,
birthWeek: { $week: "$born" },
birthIsoWeek: { $isoWeek: "$born" }
}
}
]
)
Hasil:
{ "birthWeek" : 1, "birthIsoWeek" : 53 } { "birthWeek" : 49, "birthIsoWeek" : 49 } { "birthWeek" : 38, "birthIsoWeek" : 39 }