Apa jenis id di mongodb?

Dalam tutorial ini, kita akan melihat melakukan operasi kueri menggunakan ID Dokumen di MongoDB. MongoDB menyediakan operator pencarian untuk membuat kueri dokumen dari koleksi

Dalam tutorial ini, pertama-tama kita akan melihat dokumen kueri menggunakan ID Dokumen dalam kueri MongoDB Shell dan kemudian menggunakan kode driver Java

2. Apa ID Dokumen dari Dokumen MongoDB?

Sama seperti sistem manajemen basis data lainnya, MongoDB membutuhkan pengidentifikasi unik untuk setiap dokumen yang disimpan dalam koleksi. Pengidentifikasi unik ini bertindak sebagai kunci utama untuk koleksi

Di MongoDB, ID terdiri dari 12 byte

  • stempel waktu 4-byte yang mewakili pembuatan ID yang diukur dalam hitungan detik sejak zaman Unix
  • nilai yang dihasilkan acak 5-byte yang unik untuk mesin dan proses
  • pencacah pertambahan 3-byte

Di MongoDB, ID disimpan di bidang bernama _id dan dihasilkan oleh klien. Oleh karena itu, ID harus dibuat sebelum mengirim dokumen ke database. Di sisi klien, kita bisa menggunakan driver-generated ID atau membuat custom ID

Pengidentifikasi unik disimpan di kelas ObjectId. Kelas ini menyediakan metode kemudahan untuk mendapatkan data yang disimpan dalam ID tanpa benar-benar menguraikannya. MongoDB akan menambahkan bidang _id dan menetapkan ObjectId unik untuk dokumen jika _id tidak ditentukan saat memasukkan dokumen

3. Inisialisasi Basis Data

Pertama, mari kita siapkan database baru baeldung dan koleksi sampel, kendaraan

use baeldung;
db.createCollection("vehicle");

Selanjutnya, mari tambahkan beberapa dokumen ke dalam koleksi dengan menggunakan metode insertMany

db.vehicle.insertMany([
{
    "companyName":"Skoda", 
    "modelName":"Octavia",
    "launchYear":2016,
    "type":"Sports",
    "registeredNo":"SKO 1134"
},
{ 
    "companyName":"BMW",
    "modelName":"X5",
    "launchYear":2020,
    "type":"SUV",
    "registeredNo":"BMW 3325"
},
{
    "companyName":"Mercedes",
    "modelName":"Maybach",
    "launchYear":2021,
    "type":"Luxury",
    "registeredNo":"MER 9754"
}]);
_

Jika penyisipan berhasil, perintah di atas akan mencetak JSON yang mirip dengan yang ditunjukkan di bawah ini

{
    "acknowledged" : true,
    "insertedIds" : [
        ObjectId("62d01d17cdd1b7c8a5f945b9"),
        ObjectId("62d01d17cdd1b7c8a5f945ba"),
        ObjectId("62d01d17cdd1b7c8a5f945bb")
    ]
}

Kami telah berhasil mengatur database dan koleksi. Kami akan menggunakan database dan koleksi ini untuk semua contoh

4. Menggunakan Shell MongoDB

Kami akan menggunakan db. koleksi. metode find(query, projection) untuk menanyakan dokumen dari MongoDB

Pertama, mari tulis kueri yang akan mengembalikan semua dokumen pengumpulan kendaraan

db.vehicle.find({});

Kueri di atas mengembalikan semua dokumen

{ "_id" : ObjectId("62d01d17cdd1b7c8a5f945b9"), "companyName" : "Skoda",
    "modelName" : "Octavia", "launchYear" : 2016, "type" : "Sports", "registeredNo" : "SKO 1134" }
{ "_id" : ObjectId("62d01d17cdd1b7c8a5f945ba"), "companyName" : "BMW",
    "modelName" : "X5", "launchYear" : 2020, "type" : "SUV", "registeredNo" : "BMW 3325" }
{ "_id" : ObjectId("62d01d17cdd1b7c8a5f945bb"), "companyName" : "Mercedes",
    "modelName" : "Maybach", "launchYear" : 2021, "type" : "Luxury", "registeredNo" : "MER 9754" }
_

Selanjutnya, mari tulis kueri untuk mengambil dokumen pengumpulan kendaraan menggunakan ID yang dikembalikan pada hasil di atas

db.vehicle.find(
{
    "_id": ObjectId("62d01d17cdd1b7c8a5f945b9")
});

Kueri di atas mengembalikan dokumen koleksi kendaraan dengan _id sama dengan ObjectId(“62d01d17cdd1b7c8a5f945b9”)

{ "_id" : ObjectId("62d01d17cdd1b7c8a5f945b9"), "companyName" : "Skoda",
    "modelName" : "Octavia", "launchYear" : 2016, "type" : "Sports", "registeredNo" : "SKO 1134" }
_

Selain itu, kami dapat mengambil beberapa dokumen pengumpulan kendaraan menggunakan ID dengan operator kueri

db.vehicle.find(
{
    "_id": {
        $in: [
            ObjectId("62d01d17cdd1b7c8a5f945b9"),
            ObjectId("62d01d17cdd1b7c8a5f945ba"),
            ObjectId("62d01d17cdd1b7c8a5f945bb")
        ]
    }
});

Kueri di atas mengembalikan semua dokumen pengumpulan kendaraan untuk ID yang dikueri di dalam operator

{ "_id" : ObjectId("62d01d17cdd1b7c8a5f945b9"), "companyName" : "Skoda",
    "modelName" : "Octavia", "launchYear" : 2016, "type" : "Sports", "registeredNo" : "SKO 1134" }
{ "_id" : ObjectId("62d01d17cdd1b7c8a5f945ba"), "companyName" : "BMW",
    "modelName" : "X5", "launchYear" : 2020, "type" : "SUV", "registeredNo" : "BMW 3325" }
{ "_id" : ObjectId("62d01d17cdd1b7c8a5f945bb"), "companyName" : "Mercedes",
    "modelName" : "Maybach", "launchYear" : 2021, "type" : "Luxury", "registeredNo" : "MER 9754" }
_

Demikian pula, salah satu operator kueri dapat digunakan sebagai filter untuk metode find() dengan ID yang akan dikueri

Selain itu, penting untuk diperhatikan bahwa saat melakukan kueri dokumen dengan kolom _id, nilai string ID Dokumen harus ditetapkan sebagai ObjectId() dan bukan String

Mari coba kueri dokumen yang ada dengan ID sebagai nilai String

db.vehicle.find(
{
    "_id": "62d01d17cdd1b7c8a5f945b9"
});
_

Sayangnya, kueri di atas tidak akan mengembalikan dokumen apa pun karena tidak ada dokumen dengan ID sebagai nilai String 62d01d17cdd1b7c8a5f945b9

5. Menggunakan Driver Java

Sejauh ini, kita telah mempelajari cara membuat kueri dokumen menggunakan ID dengan MongoDB Shell. Sekarang mari kita implementasikan hal yang sama menggunakan driver MongoDB Java

Sebelum melakukan operasi update, pertama-tama mari kita hubungkan ke koleksi kendaraan di baeldung database

db.vehicle.insertMany([
{
    "companyName":"Skoda", 
    "modelName":"Octavia",
    "launchYear":2016,
    "type":"Sports",
    "registeredNo":"SKO 1134"
},
{ 
    "companyName":"BMW",
    "modelName":"X5",
    "launchYear":2020,
    "type":"SUV",
    "registeredNo":"BMW 3325"
},
{
    "companyName":"Mercedes",
    "modelName":"Maybach",
    "launchYear":2021,
    "type":"Luxury",
    "registeredNo":"MER 9754"
}]);
_0

Di sini, dalam hal ini, kami terhubung ke MongoDB, yang berjalan di port default 27017 di localhost

Pertama, mari tulis kode ke dokumen kueri menggunakan ID

db.vehicle.insertMany([
{
    "companyName":"Skoda", 
    "modelName":"Octavia",
    "launchYear":2016,
    "type":"Sports",
    "registeredNo":"SKO 1134"
},
{ 
    "companyName":"BMW",
    "modelName":"X5",
    "launchYear":2020,
    "type":"SUV",
    "registeredNo":"BMW 3325"
},
{
    "companyName":"Mercedes",
    "modelName":"Maybach",
    "launchYear":2021,
    "type":"Luxury",
    "registeredNo":"MER 9754"
}]);
_1

Di sini, kami melewatkan filter Bson sebagai parameter ke metode find() dengan kolom _id untuk melakukan kueri. Cuplikan di atas akan mengembalikan dokumen pengumpulan kendaraan di mana _id sama dengan ObjectId(“62d01d17cdd1b7c8a5f945b9”)

Selanjutnya, mari kita menulis sebuah potongan untuk menanyakan dokumen dengan beberapa ID

db.vehicle.insertMany([
{
    "companyName":"Skoda", 
    "modelName":"Octavia",
    "launchYear":2016,
    "type":"Sports",
    "registeredNo":"SKO 1134"
},
{ 
    "companyName":"BMW",
    "modelName":"X5",
    "launchYear":2020,
    "type":"SUV",
    "registeredNo":"BMW 3325"
},
{
    "companyName":"Mercedes",
    "modelName":"Maybach",
    "launchYear":2021,
    "type":"Luxury",
    "registeredNo":"MER 9754"
}]);
_2

Kueri di atas mengembalikan semua dokumen pengumpulan kendaraan untuk ID yang diminta

Terakhir, mari coba kueri koleksi kendaraan dengan ID yang dibuat oleh pengemudi

db.vehicle.insertMany([
{
    "companyName":"Skoda", 
    "modelName":"Octavia",
    "launchYear":2016,
    "type":"Sports",
    "registeredNo":"SKO 1134"
},
{ 
    "companyName":"BMW",
    "modelName":"X5",
    "launchYear":2020,
    "type":"SUV",
    "registeredNo":"BMW 3325"
},
{
    "companyName":"Mercedes",
    "modelName":"Maybach",
    "launchYear":2021,
    "type":"Luxury",
    "registeredNo":"MER 9754"
}]);
_3

Kueri di atas tidak akan mengembalikan dokumen apa pun karena dokumen dengan ID yang baru dibuat tidak akan ada dalam koleksi kendaraan

6. Kesimpulan

Pada artikel ini, kita telah mempelajari cara membuat kueri dokumen menggunakan ID Dokumen di MongoDB. Pertama-tama, kami melihat kasus penggunaan ini dalam kueri MongoDB Shell, lalu kami membahas kode driver Java yang sesuai

Apa tipe _id?

Secara arsitektural, secara default bidang _id adalah sebuah ObjectID , salah satu jenis BSON MongoDB. ObjectID adalah kunci utama untuk dokumen yang disimpan dan dihasilkan secara otomatis saat membuat dokumen baru dalam koleksi.

Apa bidang ID di MongoDB?

Bidang _id . Jika dokumen yang dimasukkan menghilangkan bidang _id, driver MongoDB secara otomatis menghasilkan ObjectId untuk bidang _id. each document stored in a collection requires a unique _id field that acts as a primary key. If an inserted document omits the _id field, the MongoDB driver automatically generates an ObjectId for the _id field.

Apa perbedaan antara _id dan ID di MongoDB?

Field _id dalam database dokumen MongoDB dianggap sebagai field default untuk ObjectId BSON dan, secara default, diindeks. _id dan id tidak sama . Anda mungkin juga lebih suka menambahkan bidang yang disebut id jika Anda mau, tetapi itu tidak akan menjadi indeks kecuali Anda menambahkan indeks.

Bagaimana Anda mendefinisikan tipe di MongoDB?

Berikut adalah beberapa tipe data yang paling sering digunakan di MongoDB. .
Rangkaian. Salah satu tipe data yang paling dasar dan banyak digunakan adalah string. .
Bilangan bulat. Nilai numerik disimpan menggunakan tipe data integer. .
Dobel. .
Boolean. .
Himpunan. .
Obyek. .
Tanggal. .
Stempel waktu