MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Cara Memformat Tanggal di MongoDB

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.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Benchmarking MongoDB - Mendorong Kinerja NoSQL

  2. Perancah Yeoman, Mongoose, dan MongoDB

  3. Migrasi MongoDB ke DynamoDB, Bagian 2

  4. Buat Indeks Wildcard di MongoDB

  5. Bagaimana menjalankan perintah mongodb mentah dari pymongo