Jika Anda memiliki koleksi MongoDB dengan tanggal yang disimpan sebagai string, Anda dapat mengonversinya menjadi tipe Date BSON jika diperlukan.
Di bawah ini adalah tiga cara untuk mengubah string menjadi Tanggal di MongoDB.
Contoh Data
Contoh dalam artikel ini menggunakan dokumen berikut dalam koleksi yang disebut dogs
:
{ "_id" : 1, "name" : "Fetch", "born" : "2021-01-03T23:30:15.123" }
Kita dapat melihat bahwa born
field berisi tanggal, tetapi tanggal tersebut disimpan sebagai string.
Kita dapat menggunakan operator pipeline agregasi berikut untuk mengonversi string tersebut menjadi tanggal.
$dateFromString
Operator
$dateFromString
operator pipeline agregasi dirancang khusus untuk mengonversi tanggal menjadi string.
Ini membutuhkan dateString
argumen, yang merupakan string yang ingin Anda ubah menjadi tanggal.
Berikut ini contoh mengonversi string dalam koleksi di atas menjadi tanggal:
db.dogs.aggregate([
{
$project: {
born: {
$dateFromString: {
dateString: '$born'
}
}
}
}
])
Hasil:
{ "_id" : 1, "born" : ISODate("2021-01-03T23:30:15.123Z") }
Kita dapat melihat bahwa tanggal sekarang dibungkus dengan helper ISODate, yang berarti bahwa itu adalah objek Date.
$dateFromString
operator menerima beberapa argumen lain, yang semuanya opsional. Lihat MongoDB $dateFromString
untuk informasi dan contoh lebih lanjut.
$toDate
Operator
$toDate
operator pipa agregasi mengonversi nilai menjadi tanggal. Nilai dapat berupa jenis apa pun yang dapat dikonversi menjadi tanggal, yang pada dasarnya adalah angka, string, dan objectIds.
Artikel ini tentang mengonversi string menjadi tanggal, jadi inilah contoh penggunaan $toDate
untuk melakukan hal itu:
db.dogs.aggregate([
{
$project: {
"born": {
$toDate: "$born"
}
}
}
])
Hasil:
{ "_id" : 1, "born" : ISODate("2021-01-03T23:30:15.123Z") }
Lihat Mongo $toDate
untuk informasi dan contoh lebih lanjut.
The $convert
Operator
$convert
operator secara khusus dirancang untuk mengkonversi antara satu jenis dan jenis lainnya.
input
parameter menentukan bidang yang ingin Anda konversi, dan to
parameter menentukan jenis yang ingin Anda ubah.
Contoh:
db.cats.aggregate(
[
{
$project:
{
result:
{
$convert: {
input: "$born",
to: "date",
onError: "An error occurred",
onNull: "Input was null or empty"
}
}
}
}
]
)
Hasil:
{ "_id" : 1, "result" : ISODate("2021-01-03T23:30:15.123Z") }
Anda mungkin telah memperhatikan bahwa $convert
operator juga menerima onError
dan onNull
parameter, yang memungkinkan kami memberikan pesan untuk digunakan jika terjadi kesalahan atau null
nilai. Ini mencegah seluruh operasi agregasi terhenti, dan memungkinkan pesan kesalahan yang mudah digunakan dalam dokumen keluaran.
Lihat MongoDB $convert
untuk informasi dan contoh lebih lanjut.