Dari shell mongo, Anda dapat menggunakan getTimestamp() untuk mengambil stempel waktu dari ObjectId, tetapi tidak ada fungsi bawaan untuk menghasilkan ObjectId dari stempel waktu
Konverter online ini akan mengkonversi dari timestamp ke ObjectId dan sebaliknya
(CATATAN. tidak unik, hanya digunakan untuk perbandingan, bukan untuk membuat dokumen baru. )
(nyaman untuk ditempelkan ke shell mongo)
Tahun (XXXX)Bulan (1 - 12)Tanggal (1 - 31)JamMenitDetikStempel Waktu ISO
Mengapa menghasilkan ObjectId dari cap waktu?
Untuk menanyakan dokumen berdasarkan tanggal pembuatan
e. g. untuk menemukan semua komentar yang dibuat setelah 01-11-2013
db.comments.find({_id: {$gt: ObjectId("5272e0f00000000000000000")}})fungsi Javascript
var objectIdFromDate = function (date) { return Math.floor(date.getTime() / 1000).toString(16) + "0000000000000000"; }; var dateFromObjectId = function (objectId) { return new Date(parseInt(objectId.substring(0, 8), 16) * 1000); }; _Dalam seri pelatihan MongoDB Terperinci ini, tutorial kami sebelumnya menjelaskan kepada kami semua tentang penggunaan Dokumen Pembaruan () dan Hapus () di MongoDB
Dalam tutorial ini, kita akan belajar tentang ObjectId dan metodenya di dalam MongoDB
Pada dasarnya, ObjectId diperlakukan sebagai kunci utama dalam setiap koleksi MongoDB
Itu dihasilkan secara otomatis setiap kali kami membuat dokumen baru di dalam koleksi baru. Ini didasarkan pada nilai heksadesimal 12-byte seperti yang dapat Anda amati dalam sintaks berikut
Sintaksis
ObjectId(<hexadecimal>)Nilai heksadesimal ini dibagi menjadi tiga segmen yaitu sebagai berikut
- Segmen pertama dari nilai 4-byte mewakili detik sejak zaman UNIX
- Segmen kedua dari nilai acak 5-byte
- Segmen ketiga dari pencacah 3-byte dimulai dengan nilai acak
MongoDB menyediakan tiga metode untuk ObjectId seperti yang ditunjukkan di bawah ini
- ObjectId. getTimestamp()
- ObjectId. keString()
- ObjectId. Nilai dari()
Apa yang Akan Anda Pelajari
Buat ObjectId
Untuk membuat objectID baru secara manual di dalam MongoDB, Anda dapat mendeklarasikan objectId sebagai metode. Dengan kata sederhana, kita dapat mengatakan bahwa ID objek adalah pengidentifikasi unik untuk setiap record. Pada gambar di bawah ini Anda dapat mengamati bahwa kami mendeklarasikan variabel yang memiliki metode ID objek sebagai nilai dan akan mengembalikan heksadesimal unik
Kode
X = ObjectId()Gambar 1. Di Mongo Shell
Gambar 2. Di Robo 3T
Pada gambar di atas, Anda dapat mengamati bahwa kami mendeklarasikan metode objectID sebagai nilai untuk variabel "x" beberapa kali. Setiap kali akan mengembalikan nilai heksadesimal yang unik dan ketika kita hanya memanggil "x", itu akan mengembalikan nilai heksadesimal yang disimpan terakhir
Dari percobaan ini, kami mengetahui bahwa, setiap kali kami memanggil ObjectID, ia akan mencadangkan lokasi tertentu dalam memori virtual untuk direkam.
Tentukan Spesifik ObjectId Heksadesimal
Jika Anda ingin menentukan nilai heksadesimal unik Anda sendiri, maka MongoDB akan memungkinkan Anda melakukan tindakan ini. Pada contoh di atas, hanya mendeklarasikan ID objek tanpa parameter apa pun sebagai metode
Dalam skenario ini, kami akan mendefinisikan ID objek dengan nilai heksadesimal sebagai parameter metode
Seperti yang dapat Anda amati, pada gambar berikut kami mendefinisikan nilai variabel "y" sebagai ID objek yang telah ditentukan sebelumnya. Dengan demikian itu akan mengembalikan ID objek yang sama yang dengannya kita mengetahui bahwa kita dapat menentukan nilai heksadesimal tertentu untuk ID objek individual
Kode
y = ObjectId(“5bf142459b72e12b2b1b2cd”)_Gambar 3. Di Mongo Shell
Gambar 4. Di Robo 3T
Dapatkan String Heksadesimal ObjectId
Saat Anda memanggil ID Objek, itu tidak akan mengembalikan Anda string, melainkan akan mengembalikan Anda seluruh metode yang memiliki nilai heksadesimal unik
Untuk mengekstrak heksadesimal unik sebagai string dari objectID, Anda harus menggunakan “. str” sebagai postfix. Pada gambar berikut, Anda dapat mengamati cara kerjanya
Kode
y = ObjectId(“5bf142459b72e12b2b1b2cd”). str
Gambar 5. Di Mongo Shell
Gambar 6. Di Robo 3T
Kesimpulan
ID objek diperlakukan sebagai kunci utama dalam koleksi MongoDB dan dihasilkan secara otomatis. Kami dapat membuat ID objek secara manual dan kami juga dapat menentukan nilai heksadesimal sesuai dengan kebutuhan kami
Kami juga dapat mengekstrak nilai heksadesimal sebagai string dari ID objek. ID objek adalah kombinasi waktu, nilai acak, dan nilai penghitung. Setiap kali kita memanggil Object ID, itu menciptakan nilai heksadesimal yang unik