Kami telah menggunakan Id Objek MongoDB di semua bab sebelumnya. Pada bab ini, kita akan memahami struktur ObjectId Show
ObjectId adalah tipe BSON 12-byte yang memiliki struktur berikut −
MongoDB menggunakan ObjectIds sebagai nilai default bidang _id dari setiap dokumen, yang dihasilkan saat pembuatan dokumen apa pun. Kombinasi kompleks ObjectId membuat semua bidang _id menjadi unik Membuat ObjectId BaruUntuk menghasilkan ObjectId baru gunakan kode berikut − >newObjectId = ObjectId() Pernyataan di atas mengembalikan id − yang dihasilkan secara unik berikut ini ObjectId("5349b4ddd2781d08c09890f3")_ Alih-alih MongoDB menghasilkan ObjectId, Anda juga dapat memberikan id 12-byte >myObjectId = ObjectId("5349b4ddd2781d08c09890f4") Membuat Timestamp dari DokumenKarena _id ObjectId secara default menyimpan stempel waktu 4-byte, dalam banyak kasus Anda tidak perlu menyimpan waktu pembuatan dokumen apa pun. Anda dapat mengambil waktu pembuatan dokumen menggunakan metode getTimestamp − >ObjectId("5349b4ddd2781d08c09890f4").getTimestamp() Ini akan mengembalikan waktu pembuatan dokumen ini dalam format tanggal ISO − ISODate("2014-04-12T21:49:17Z")_ Mengubah ObjectId menjadi StringDalam beberapa kasus, Anda mungkin memerlukan nilai ObjectId dalam format string. Untuk mengonversi ObjectId dalam string, gunakan kode berikut − Anda tidak dapat memperbaruinya tetapi Anda dapat menyimpan id baru dan menghapus id lama. Ikuti beberapa langkah untuk memperbarui _id dari MongoDB. Langkah-langkahnya adalah sebagai berikut Langkah 1. Pada langkah pertama, Anda perlu menyimpan ObjectId ke dalam sebuah variabel anyVariableName=db.yourCollectionName.findOne({_id:yourObjectIdValue)}); Langkah 2. Pada langkah kedua, Anda perlu mengatur id baru yourDeclaredVariableName._id=yourNewObjectIdValue;_ Langkah 3. Pada langkah ketiga, Anda perlu memasukkan id baru pada dokumen db.yourCollectionName.insert(yourDeclaredVariableName); Langkah 4. Pada langkah keempat, Anda harus menghapus id lama db.yourCollectionName.remove({_id:yourOldObjectIdValue)});_ Untuk memahami langkah-langkah di atas, mari kita membuat koleksi dengan dokumen. Permintaan untuk membuat koleksi dengan dokumen adalah sebagai berikut > db.updateIdDemo.insertOne({"StudentName":"Robert"}); { "acknowledged" : true, "insertedId" : ObjectId("5c6ebfec6fd07954a4890683") } > db.updateIdDemo.insertOne({"StudentName":"Chris"}); { "acknowledged" : true, "insertedId" : ObjectId("5c6ebff66fd07954a4890684") } > db.updateIdDemo.insertOne({"StudentName":"Maxwell"}); { "acknowledged" : true, "insertedId" : ObjectId("5c6ebfff6fd07954a4890685") }_ Tampilkan semua dokumen dari koleksi dengan bantuan metode find(). Kuerinya adalah sebagai berikut > db.updateIdDemo.find().pretty(); Berikut ini adalah outputnya { "_id" : ObjectId("5c6ebfec6fd07954a4890683"), "StudentName" : "Robert" } { "_id" : ObjectId("5c6ebff66fd07954a4890684"), "StudentName" : "Chris" } { "_id" : ObjectId("5c6ebfff6fd07954a4890685"), "StudentName" : "Maxwell" } Berikut ini adalah kueri untuk memperbarui _id dari dokumen MongoDB Step1: > myId=db.updateIdDemo.findOne({_id:ObjectId("5c6ebfec6fd07954a4890683")}); { "_id" : ObjectId("5c6ebfec6fd07954a4890683"), "StudentName" : "Robert" } Step 2: > myId._id=ObjectId("5c6ebfec6fd07954a4890689"); ObjectId("5c6ebfec6fd07954a4890689") Step 3: > db.updateIdDemo.insert(myId); WriteResult({ "nInserted" : 1 }) Step 4: > db.updateIdDemo.remove({_id:ObjectId("5c6ebfec6fd07954a4890683")}); WriteResult({ "nRemoved" : 1 }) Mari kita periksa apakah _id sudah diperbarui atau belum. Tampilkan semua dokumen dari koleksi dengan bantuan metode find() 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
MongoDB menyediakan tiga metode untuk ObjectId seperti yang ditunjukkan di bawah ini
Apa yang Akan Anda Pelajari Buat ObjectIdUntuk 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 HeksadesimalJika 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 ObjectIdSaat 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 KesimpulanID 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 Bagaimana cara mengatur ObjectId di MongoDB?Langkah-langkahnya adalah sebagai berikut. . Langkah 1. Pada langkah pertama, Anda perlu menyimpan ObjectId ke dalam sebuah variabel Langkah 2. Pada langkah kedua, Anda perlu mengatur id baru Langkah 3. Pada langkah ketiga, Anda perlu memasukkan id baru pada dokumen Langkah 4. Pada langkah keempat, Anda harus menghapus id lama Bisakah kita mengatur _id di MongoDB?Jika demikian, jawabannya adalah ya, Anda dapat menyetel properti _id ke nilai jenis apa pun kecuali array , per https. //dokumen. mongodb. com/manual/core/dokumen/.
Bagaimana ObjectId dihasilkan?ObjectID dibuat secara otomatis oleh driver database , dan akan ditetapkan ke kolom _id dari setiap dokumen. ObjectID dapat dianggap unik secara global untuk semua tujuan praktis. ObjectID mengkodekan stempel waktu waktu pembuatannya, yang dapat digunakan untuk kueri atau mengurutkan berdasarkan waktu pembuatan.
Apa jenis ID objek MongoDB?ObjectId adalah salah satu tipe data yang merupakan bagian dari Spesifikasi BSON yang digunakan MongoDB untuk penyimpanan data. Ini adalah representasi biner dari JSON dan menyertakan tipe data lain di luar yang ditentukan dalam JSON. Ini adalah tipe data yang kuat yang sangat berguna sebagai pengidentifikasi unik dalam Dokumen MongoDB. |