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

5 Cara Mendapatkan Menit dari Sebuah Kencan di MongoDB

Artikel ini menyajikan 5 cara untuk mengembalikan porsi menit dari objek Date 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:47Z") }
{ "_id" : 3, "name" : "Fluffy", "born" : ISODate("2020-09-24T10:45:00Z") }

Contoh berikut menunjukkan berbagai opsi untuk mengembalikan porsi menit dari born bidang dokumen tersebut.

$minute Operator

$minute operator secara khusus dirancang untuk mengembalikan dokumen dengan porsi menit dari tanggal tertentu.

Kita dapat menjalankan kode berikut untuk mengembalikan bagian menit dari born bidang dalam dokumen di atas.

db.cats.aggregate(
  [
    {
      $project:
        {
          _id: 0,
          birthMinute: { $minute: "$born" }
        }
    }
  ]
)

Hasil:

{ "birthMinute" : 30 }
{ "birthMinute" : 0 }
{ "birthMinute" : 45 }

Anda juga dapat menentukan zona waktu saat menggunakan $minute operator.

Lihat MongoDB $minute 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 menit yang dikembalikan jika diperlukan.

Ada penentu format untuk setiap bagian tanggal. %M penentu format mengembalikan bagian menit.

Contoh:

db.cats.aggregate(
   [
     {
       $project: {
         _id: 0,
          birthMinute: { $dateToString: { format: "%M", date: "$born" } }
       }
     }
   ]
)

Hasil:

{ "birthMinute" : "30" }
{ "birthMinute" : "00" }
{ "birthMinute" : "45" }

Anda juga dapat menggunakan %Z untuk mengembalikan offset menit dari UTC sebagai angka.

Lihat MongoDB $dateToString untuk informasi dan contoh lebih lanjut.

$dateToParts Operator

$dateToParts operator mengembalikan dokumen yang berisi bagian konstituen dari nilai Tanggal BSON yang diberikan sebagai properti individual. Properti yang dikembalikan adalah year , month , day , hour , minute , second dan millisecond .

Oleh karena itu, kami dapat menggunakan $dateToParts dalam satu tahap saluran, lalu tambahkan tahap saluran lain yang mengekstrak minute bagian.

Ini dia $dateToParts pengembalian untuk tiga dokumen kami:

db.cats.aggregate(
  [
    {
      $project:
        {
          _id: 0,
          dateParts: { $dateToParts: { date: "$born" } }
        }
    }
  ]
).pretty()

Hasil:

{
	"dateParts" : {
		"year" : 2021,
		"month" : 1,
		"day" : 3,
		"hour" : 23,
		"minute" : 30,
		"second" : 15,
		"millisecond" : 123
	}
}
{
	"dateParts" : {
		"year" : 2019,
		"month" : 12,
		"day" : 8,
		"hour" : 4,
		"minute" : 0,
		"second" : 47,
		"millisecond" : 0
	}
}
{
	"dateParts" : {
		"year" : 2020,
		"month" : 9,
		"day" : 24,
		"hour" : 10,
		"minute" : 45,
		"second" : 0,
		"millisecond" : 0
	}
}

Hasil ini kemudian dapat diteruskan ke tahap berikutnya dalam pipeline untuk mengekstrak minute lapangan.

Inilah yang terjadi jika kita menambahkan proyeksi lain hanya untuk minute bidang:

db.cats.aggregate(
  [
    {
      $project:
        {
          _id: 0,
          dateParts: { $dateToParts: { date: "$born" } }
        }
    },
    {
      $project:
        {
          birthMinute: "$dateParts.minute"
        }
    }
  ]
)

Hasil:

{ "birthMinute" : 30 }
{ "birthMinute" : 0 }
{ "birthMinute" : 45 }

Jadi jika Anda menggunakan $dateToParts di saluran Anda, Anda kemudian akan memiliki akses ke minute bidang (dan semua bidang lainnya) di tahap berikutnya.

Lihat MongoDB $dateToParts untuk informasi dan contoh lebih lanjut.

The forEach() Metode

Anda dapat menggunakan cursor.forEach() untuk beralih melalui kursor, menggunakan metode JavaScript seperti getMinutes() atau getUTCMinutes() untuk mengembalikan hanya beberapa menit.

db.cats.find().forEach(
  function(c) {
    print(
      c.born.getUTCMinutes()
      );
  }
);

Hasil:

30
0
45

getUTCMinutes() Metode JavaScript mengembalikan bilangan bulat, antara 0 dan 59, yang mewakili menit pada tanggal yang ditentukan menurut waktu universal.

getMinutes() metode mengembalikannya dalam waktu lokal.

Anda mungkin juga memperhatikan bahwa opsi sebelumnya mengembalikan seluruh dokumen yang berisi pasangan nama/nilai, sedangkan opsi ini hanya mengembalikan nilai menit sebenarnya, dan bukan keseluruhan dokumen.

map() Metode

cursor.map() metode menerapkan fungsi ke setiap dokumen yang dikunjungi oleh kursor dan menggabungkan nilai ke dalam array.

Contoh:

db.cats.find().map(
  function(c) {
    c = c.born.getUTCMinutes();
    return c;
  }
);

Hasil:

[ 30, 0, 45 ]

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Deserializing Id objek DB Mongo menggunakan serializer JSON

  2. Terapkan GraphQL API dengan MongoDB Atlas dan Apollo Server di Koyeb

  3. Filter dengan driver regex MongoDB C#

  4. Mongodump dari server jauh

  5. Memperbarui jalur 'x' akan membuat konflik di 'x'