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

Pengantar tipe data MongoDB


Pengantar

Saat menggunakan MongoDB, Anda memiliki kemampuan untuk fleksibel dengan struktur data Anda. Anda tidak terkunci dalam mempertahankan skema tertentu yang harus sesuai dengan semua dokumen Anda. Untuk bidang tertentu dalam dokumen, Anda dapat menggunakan salah satu tipe data . yang tersedia didukung oleh MongoDB. Terlepas dari cara kerja default ini, Anda dapat menerapkan Skema JSON di MongoDB untuk menambahkan validasi pada koleksi Anda jika diinginkan. Kami tidak akan membahas detail desain skema dalam panduan ini, tetapi ini dapat berdampak pada pengetikan data jika diterapkan.

Tipe data menentukan pola umum untuk data yang mereka terima dan simpan. Sangat penting untuk memahami kapan harus memilih tipe data tertentu daripada yang lain saat merencanakan database Anda. Jenis yang dipilih akan menentukan bagaimana Anda dapat mengoperasikan data Anda dan bagaimana data tersebut disimpan.



JSON dan BSON

Sebelum masuk ke detail tipe data tertentu, penting untuk memiliki pemahaman tentang bagaimana MongoDB menyimpan data. MongoDB dan banyak database NoSQL berbasis dokumen lainnya menggunakan JSON (JavaScript Object Notation) untuk mewakili catatan data sebagai dokumen.

Ada banyak keuntungan menggunakan JSON untuk menyimpan data. Beberapa di antaranya adalah:

  • kemudahan membaca, belajar, dan keakrabannya di kalangan pengembang
  • fleksibilitas dalam format, baik yang jarang, hierarkis, atau sangat bersarang
  • mendeskripsikan diri sendiri, yang memungkinkan aplikasi untuk dengan mudah beroperasi dengan data JSON
  • memungkinkan fokus pada tipe dasar dalam jumlah minimal

JSON mendukung semua tipe data dasar seperti string, angka, boolean, dll. MongoDB sebenarnya menyimpan catatan data sebagai dokumen Binary-encoded JSON (BSON). Seperti JSON, BSON mendukung penyematan dokumen dan larik di dalam dokumen dan larik lain. BSON memungkinkan untuk tipe data tambahan yang tidak tersedia untuk JSON.



Apa saja tipe data di MongoDB?

Sebelum masuk ke detail, mari kita lihat secara luas tipe data apa yang didukung di MongoDB.

MongoDB mendukung berbagai tipe data yang cocok untuk berbagai jenis data baik yang sederhana maupun yang kompleks. Ini termasuk:

Teks

  • String

Numerik

  • 32-Bit Integer
  • 64-Bit Integer
  • Double
  • Decimal128

Tanggal/Waktu

  • Date
  • Timestamp

Lainnya

  • Object
  • Array
  • Binary Data
  • ObjectId
  • Boolean
  • Null
  • Regular Expression
  • JavaScript
  • Min Key
  • Max Key

Di MongoDB, setiap tipe BSON memiliki pengidentifikasi integer dan string. Kami akan membahas yang paling umum dari ini secara lebih mendalam di seluruh panduan ini.



Jenis string

Tipe string adalah tipe data MongoDB yang paling umum digunakan. Nilai apa pun yang ditulis di dalam tanda kutip ganda "" di JSON adalah nilai string. Nilai apa pun yang ingin Anda simpan sebagai teks sebaiknya diketik sebagai String . String BSON adalah UTF-8 dan direpresentasikan dalam MongoDB sebagai:

        Type         | Number |  Alias   |  ------------------ | ------ | -------- |       String        |    2   | "string" |

Umumnya, driver untuk bahasa pemrograman akan mengonversi dari format string bahasa ke UTF-8 saat membuat serial dan deserializing BSON. Ini menjadikan BSON metode yang menarik untuk menyimpan karakter internasional dengan mudah misalnya.

Menyisipkan dokumen dengan String tipe data akan terlihat seperti ini:

db.mytestcoll.insertOne({first_name: "Alex"}){        "acknowledged": true,        "insertedId": ObjectId("614b37296a124db40ae74d15")}

Menanyakan koleksi akan mengembalikan yang berikut:

db.mytestcoll.find().pretty(){        _id: ObjectId("614b37296a124db40ae74d15"),         first_name: "Alex"}

Menggunakan $type operator

Sebelum beralih ke tipe data berikutnya, penting untuk mengetahui bagaimana Anda bisa mengetik memeriksa nilai sebelum membuat penyisipan apa pun. Kami akan menggunakan contoh sebelumnya untuk mendemonstrasikan menggunakan $type operator di MongoDB.

Katakanlah sudah lama sejak kami bekerja dengan mytestcoll koleksi dari sebelumnya. Kami ingin memasukkan beberapa dokumen tambahan ke dalam koleksi dengan first_name bidang. Untuk memeriksa apakah kami menggunakan String sebagai tipe data yang disimpan sebagai nilai first_name awalnya, kita dapat menjalankan yang berikut ini menggunakan nilai alias atau angka dari tipe data:

db.mytestcoll.find( { "first_name": { $type: "string" } } )

Atau

db.mytestcoll.find( { "first_name": { $type: 2 } } )

Kedua kueri mengembalikan output dari semua dokumen yang memiliki String nilai yang disimpan untuk first_name dari penyisipan bagian sebelumnya:

[ { _id: ObjectId("614b37296a124db40ae74d15"), first_name: "Alex" } ]

Jika Anda menanyakan jenis yang tidak disimpan di first_name bidang dokumen apa pun, Anda tidak akan mendapatkan hasil. Ini menunjukkan bahwa ini adalah tipe data lain yang disimpan di first_name .

Anda juga dapat melakukan kueri untuk beberapa tipe data sekaligus dengan $type operator seperti berikut:

db.mytestcoll.find( { "first_name": { $type: ["string", "null"] } } )

Karena kami tidak memasukkan Null ketik nilai ke dalam koleksi kami, hasilnya akan sama:

[ { _id: ObjectId("614b37296a124db40ae74d15"), first_name: "Alex" } ]

Anda dapat menggunakan metode yang sama dengan semua tipe berikut yang akan kita bahas.




Angka dan nilai numerik

MongoDB mencakup berbagai tipe data numerik yang cocok untuk skenario yang berbeda. Memutuskan jenis mana yang akan digunakan bergantung pada sifat nilai yang Anda rencanakan untuk disimpan dan kasus penggunaan Anda untuk data. JSON menyebut apa pun dengan angka sebagai Nomor . Itu memaksa sistem untuk mencari cara mengubahnya menjadi tipe data asli terdekat. Kita akan mulai dengan menjelajahi bilangan bulat dan cara kerjanya di MongoDB.


Integer

Integer tipe data digunakan untuk menyimpan angka sebagai bilangan bulat tanpa pecahan atau desimal. Bilangan bulat dapat berupa nilai positif atau negatif. Ada dua jenis di MongoDB, 32-Bit Integer dan 64-Bit Integer . Mereka dapat direpresentasikan dalam dua cara yang digambarkan dalam tabel di bawah ini, number dan alias :

  Integer type   | number |    alias     |   ------------   | -----  | ------------ |  `32-bit integer`|   16   |    "int"     | `64-bit integer`|   18   |    "long"    |

Rentang nilai yang dapat ditampung untuk setiap jenis adalah sebagai berikut:

  Integer type   |    Applicable signed range     |    Applicable unsigned range    |  ------------   | ------------------------------ | ------------------------------- | `32-bit integer`| -2,147,483,648 to 2,147,483,647|  0 to 4,294,967,295             | `64-bit integer`| -9,223,372,036,854,775,808 to  |  0 to 18,446,744,073,709,551,615                         9,223,372,036,854,775,807

Jenis di atas dibatasi oleh rentang validnya. Nilai apa pun di luar rentang akan menghasilkan kesalahan. Menyisipkan Integer ketikkan ke MongoDB akan terlihat seperti di bawah ini:

db.mytestcoll.insertOne({age: 26}){        "acknowledged": true,        "insertedId": ObjectId("614b37296a124db40ae74d14")}

Dan menemukan hasilnya akan mengembalikan yang berikut:

db.mytestcoll.find().pretty(){        _id: ObjectId("614b37296a124db40ae74d14"), age: 26}

Seperti yang disarankan oleh namanya, 32-Bit Integer memiliki presisi bilangan bulat 32 bit yang berguna untuk nilai bilangan bulat yang lebih kecil yang tidak ingin Anda simpan sebagai urutan digit. Saat bertambah dalam ukuran angka, Anda dapat mencapai 64-Bit Integer yang memiliki presisi bilangan bulat 64 bit dan cocok dengan kasus penggunaan yang sama seperti sebelumnya.



Ganda

Di BSON, pengganti default untuk Nomor J JSON adalah Double tipe data. Double tipe data digunakan untuk menyimpan nilai floating-point dan dapat direpresentasikan dalam MongoDB seperti:

        Type         | Number |   Alias  |  ------------------ | ------ | -------- |       Double        |    1   | "double" |

Angka floating point adalah cara lain untuk mengekspresikan angka desimal, tetapi tanpa presisi yang tepat dan konsisten.

Angka floating point dapat bekerja dengan sejumlah besar desimal secara efisien tetapi tidak selalu tepat. Berikut ini adalah contoh memasukkan dokumen dengan kode Double ketik ke dalam koleksi Anda:

db.mytestcoll.insertOne({testScore: 89.6}){        "acknowledged": true,        "insertedId": ObjectId("614b37296a124db40ae74d13")}

Mungkin ada sedikit perbedaan antara input dan output saat menghitung dengan ganda yang berpotensi menyebabkan perilaku yang tidak terduga. Saat melakukan operasi yang membutuhkan nilai eksak, MongoDB memiliki tipe yang lebih presisi.



Desimal128

Jika Anda bekerja dengan angka yang sangat besar dengan banyak rentang floating point, maka Decimal128 Tipe data BSON akan menjadi pilihan terbaik. Ini akan menjadi tipe yang paling berguna untuk nilai yang membutuhkan banyak presisi seperti dalam kasus penggunaan yang melibatkan operasi moneter yang tepat. Decimal128 jenis direpresentasikan sebagai:

        Type         | Number |   Alias   |  ------------------ | ------ | --------- |      Decimal128     |   19   | "decimal" |

Jenis BSON, Decimal128 , menyediakan 128 bit representasi desimal untuk menyimpan angka di mana pembulatan desimal sangat penting. Decimal128 mendukung presisi 34 digit desimal, atau sinificand dengan kisaran -6143 hingga +6144. Ini memungkinkan presisi yang tinggi.

Memasukkan nilai menggunakan Decimal128 tipe data memerlukan penggunaan NumberDecimal() konstruktor dengan nomor Anda sebagai String untuk mencegah MongoDB menggunakan tipe numerik default, Double .

Di sini, kami menunjukkan ini:

db.mytestcoll.insertOne({price : NumberDecimal("5.099")}){        "acknowledged": true,        "insertedId": ObjectId("614b37296a124db40ae74d12")}

Saat menanyakan koleksi, Anda kemudian mendapatkan pengembalian berikut:

db.mytestcoll.find().pretty(){        _id: ObjectId("614b37296a124db40ae74d12"),         price: "5.099" }

Nilai numerik mempertahankan presisi yang memungkinkan untuk operasi yang tepat. Untuk mendemonstrasikan Decimal128 ketik versus Double , kita dapat mengikuti latihan berikut.



Bagaimana presisi bisa hilang berdasarkan tipe data

Katakanlah kita ingin memasukkan angka dengan banyak nilai desimal sebagai Double ke MongoDB dengan yang berikut:

db.mytestcoll.insertOne({ price: 9999999.4999999999 }){        "acknowledged": true,        "insertedId": ObjectId("614b37296a124db40ae74d24")}

Saat kami meminta data ini, kami mendapatkan hasil berikut:

db.mytestcoll.find().pretty(){        _id: ObjectId("614b37296a124db40ae74d24"),         price: 9999999.5}

Nilai ini dibulatkan menjadi 9999999.5 , kehilangan nilai persisnya yang kita masukkan. Ini membuat Double tidak cocok untuk penyimpanan angka dengan banyak desimal.

Contoh berikutnya menunjukkan di mana presisi akan hilang saat melewati Double secara implisit dengan Decimal128 bukannya String seperti pada contoh sebelumnya.

Kita mulai dengan menyisipkan Double berikut ini lagi tetapi dengan NumberDecimal() untuk membuatnya menjadi Decimal128 ketik:

db.mytestcoll.insertOne({ price: NumberDecimal( 9999999.4999999999 ) }){        "acknowledged": true,        "insertedId": ObjectId("614b37296a124db40ae74d14")}

Catatan :Saat melakukan penyisipan ini di shell MongoDB, pesan peringatan berikut akan ditampilkan:

Warning: NumberDecimal: specifying a number as argument is deprecated and may lead to loss of precision, pass a string instead

Pesan peringatan ini menunjukkan bahwa nomor yang Anda coba berikan dapat kehilangan presisi. Mereka menyarankan untuk menggunakan String menggunakan NumberDecimal() sehingga Anda tidak kehilangan presisi.

Jika kita mengabaikan peringatan dan tetap memasukkan dokumen, hilangnya presisi terlihat pada hasil kueri dari pembulatan nilai:

db.mytestcoll.find().pretty(){        _id: ObjectId("614b37296a124db40ae74d14"),         price: Decimal128("9999999.50000000")}

Jika kita mengikuti NumberDecimal() yang direkomendasikan pendekatan menggunakan String kita akan melihat hasil berikut dengan presisi yang terjaga:

db.mytestcoll.insertOne({ price: NumberDecimal( "9999999.4999999999" ) } )
db.mytestcoll.find().pretty(){        _id: ObjectId("614b37296a124db40ae74d14"),         price: Decimal128("9999999.4999999999")}

Untuk kasus penggunaan apa pun yang membutuhkan nilai yang tepat dan pasti, pengembalian ini dapat menyebabkan masalah. Setiap pekerjaan yang melibatkan operasi moneter adalah contoh di mana presisi akan menjadi sangat penting dan memiliki nilai yang tepat sangat penting untuk perhitungan yang akurat. Demonstrasi ini menyoroti pentingnya mengetahui tipe data numerik mana yang paling cocok untuk data Anda.




Tanggal

Date BSON tipe data adalah bilangan bulat 64-bit yang mewakili jumlah milidetik sejak zaman Unix (1 Januari 1970). Tipe data ini menyimpan tanggal atau waktu saat ini dan dapat dikembalikan sebagai objek tanggal atau sebagai string. Date direpresentasikan dalam MongoDB sebagai berikut:

        Type         | Number |     Alias    |  ------------------ | ------ | ------------ |        Date         |    9   |     "date"   |

Catatan :BSON Date jenis ditandatangani. Nilai negatif menunjukkan tanggal sebelum tahun 1970.

Ada tiga metode untuk mengembalikan nilai tanggal.

  1. Date() - mengembalikan string

  2. new Date() - mengembalikan objek tanggal menggunakan ISODate() pembungkus

  3. ISODate() - juga mengembalikan objek tanggal menggunakan ISODate() pembungkus

Kami mendemonstrasikan opsi ini di bawah:

var date1 = Date()var date2 = new Date()var date3 = ISODate()db.mytestcoll.insertOne({firstDate: date1, secondDate: date2, thirdDate: date3}){        "acknowledged": true,        "insertedId": ObjectId("614b37296a124db40ae74d22")}

Dan saat kembali:

db.mytestcoll.find().pretty(){                "_id" : ObjectId("614b37296a124db40ae74d22"),                firstDate: 'Tue Sep 28 2021 11:28:52 GMT+0200 (Central European Summer Time)',                secondDate: ISODate("2021-09-28T09:29:01.924Z"),                thirdDate: ISODate("2021-09-28T09:29:12.151Z")}


Stempel waktu

Ada juga Timestamp tipe data dalam MongoDB untuk mewakili waktu. Namun, Timestamp akan paling berguna untuk penggunaan internal dan tidak terkait dengan Date Tipe. Tipe itu sendiri adalah urutan karakter yang digunakan untuk menggambarkan tanggal dan waktu ketika suatu peristiwa terjadi. Timestamp adalah nilai 64 bit di mana:

  • 32 bit yang paling signifikan adalah time_t nilai (detik sejak zaman Unix)
  • 32 bit yang paling tidak signifikan adalah ordinal . yang bertambah untuk operasi dalam satu detik tertentu

Representasinya di MongoDB akan terlihat sebagai berikut:

        Type         | Number |     Alias    |  ------------------ | ------ | ------------ |      Timestamp      |   17   |  "timestamp" |

Saat memasukkan dokumen yang berisi bidang tingkat atas dengan stempel waktu kosong, MongoDB akan mengganti nilai stempel waktu kosong dengan nilai stempel waktu saat ini. Pengecualian untuk ini adalah jika _id bidang berisi stempel waktu kosong. Nilai stempel waktu akan selalu dimasukkan apa adanya dan tidak diganti.

Memasukkan Timestamp baru nilai di MongoDB akan menggunakan new Timestamp() fungsi dan terlihat seperti ini:

db.mytestcoll.insertOne( {ts: new Timestamp() });{        "acknowledged": true,        "insertedId": ObjectId("614b37296a124db40ae74d23")}

Saat menanyakan koleksi, Anda akan menampilkan hasil yang menyerupai:

db.mytestcoll.find().pretty(){        "_id" : ObjectId("614b37296a124db40ae74d24"),         "ts" : Timestamp( { t: 1412180887, i: 1 })}


Objek

Object tipe data di MongoDB digunakan untuk menyimpan dokumen yang disematkan. Dokumen yang disematkan adalah serangkaian dokumen bersarang di key: value format pasangan. Kami mendemonstrasikan Object ketik di bawah ini:

var classGrades = {"Physics": 88, "German": 92, "LitTheoery": 79}db.mytestcoll.insertOne({student_name: "John Smith", report_card: classGrades}){        "acknowledged": true,        "insertedId": ObjectId("614b37296a124db40ae74d18")}

Kami kemudian dapat melihat dokumen baru kami:

db.mytestcoll.find().pretty(){    _id: ObjectId("614b37296a124db40ae74d18"),    student_name: 'John Smith',    report_card: {Physics: 88, German: 92, LitTheoery: 79}}

Object tipe data mengoptimalkan untuk menyimpan data yang paling baik diakses bersama-sama. Ini memberikan beberapa efisiensi seputar penyimpanan, kecepatan, dan daya tahan dibandingkan dengan menyimpan setiap tanda kelas, dari contoh di atas, secara terpisah.



Data Biner

Binary data , atau BinData , tipe data melakukan persis seperti namanya dan menyimpan data biner untuk nilai bidang. BinData paling baik digunakan saat Anda menyimpan dan mencari data, karena efisiensinya dalam merepresentasikan bit array. Tipe data ini dapat direpresentasikan dengan cara berikut:

        Type         | Number |     Alias    |  ------------------ | ------ | ------------ |      Binary data    |    5   |   "binData"  |

Berikut adalah contoh menambahkan beberapa Binary data ke dalam dokumen dalam koleksi:

var data = BinData(1, "111010110111100110100010101")db.mytestcoll.insertOne({binaryData: data}){        "acknowledged": true,        "insertedId": ObjectId("614b37296a124db40ae74d20")}

Untuk kemudian melihat dokumen yang dihasilkan:

db.mytestcoll.find().pretty(){        "_id" : ObjectId("614b37296a124db40ae74d20"),        "binaryData" : BinData(1, "111010110111100110100010101")}


ObjectId

ObjectId type khusus untuk MongoDB dan menyimpan ID unik dokumen. MongoDB menyediakan _id bidang untuk setiap dokumen. ObjectId berukuran 12 byte dan dapat direpresentasikan sebagai berikut:

        Type         | Number |     Alias    |  ------------------ | ------ | ------------ |      ObjectId       |    7   |   "objectId" |

ObjectId terdiri dari tiga bagian yang membentuk susunan 12-byte:

  • 4 byte nilai stempel waktu , mewakili pembuatan ObjectId, diukur dalam hitungan detik sejak zaman Unix
  • 5 byte nilai acak
  • penghitung peningkatan 3 byte diinisialisasi ke nilai acak

Di MongoDB, setiap dokumen dalam koleksi memerlukan _id yang unik untuk bertindak sebagai kunci utama. Jika _id kolom dibiarkan kosong untuk dokumen yang disisipkan, MongoDB akan secara otomatis menghasilkan ObjectId untuk kolom tersebut.

Ada beberapa manfaat menggunakan ObjectIds untuk _id :

  • dalam mongosh (MongoDB shell), waktu pembuatan ObjectId dapat diakses menggunakan ObjectId.getTimestamp() metode.
  • mengurutkan pada _id bidang yang menyimpan ObjectId tipe data hampir sama dengan pengurutan berdasarkan waktu pembuatan.

Sejauh ini kita telah melihat ObjectIds di seluruh contoh, dan mereka akan terlihat seperti ini:

db.mytestcoll.find().pretty(){         _id: ObjectId("614b37296a124db40ae74d19")}

Catatan :Nilai ObjectId harus meningkat seiring waktu, namun tidak selalu monoton. Ini karena mereka:

  • Hanya berisi satu detik resolusi temporal, jadi nilai yang dibuat dalam detik yang sama tidak memiliki jaminan pemesanan
  • nilai dihasilkan oleh klien, yang mungkin memiliki jam sistem yang berbeda


Boolean

MongoDB memiliki Boolean asli tipe data untuk menyimpan nilai benar dan salah dalam koleksi. Boolean di MongoDB dapat direpresentasikan sebagai berikut:

        Type         | Number |     Alias    |  ------------------ | ------ | ------------ |       Boolean       |    8   |     "bool"   |

Menyisipkan dokumen dengan Boolean tipe data akan terlihat seperti berikut:

db.mytestcoll.insertOne({isCorrect: true, isIncorrect: false}){        "acknowledged": true,        "insertedId": ObjectId("614b37296a124db40ae74d21")}

Kemudian ketika mencari dokumen maka akan muncul hasil sebagai berikut:

db.mytestcoll.find().pretty(){    "_id" : ObjectId("614b37296a124db40ae74d21")    "isCorrect" : true,    "isIncorrect" : false}


Ekspresi Reguler

Regular Expression tipe data di MongoDB memungkinkan penyimpanan ekspresi reguler sebagai nilai bidang. MongoDB menggunakan PCRE (Perl Compatible Regular Expression) sebagai bahasa ekspresi regulernya.

Ini dapat direpresentasikan dengan cara berikut:

        Type         | Number |  Alias  |  ------------------ | ------ | ------- |  Regular Expression |   11   | "regex" |

BSON memungkinkan Anda untuk menghindari langkah "konversi dari string" yang umum dialami saat bekerja dengan ekspresi reguler dan database. Tipe ini akan sangat berguna saat Anda menulis objek database yang memerlukan pola validasi atau pemicu yang cocok.

Misalnya, Anda dapat memasukkan Regular Expression tipe data seperti ini:

db.mytestcoll.insertOne({exampleregex: /tt/}){        "acknowledged": true,        "insertedId": ObjectId("614b37296a124db40ae74d16")}db.mytestcoll.insertOne({exampleregext:/t+/}){        "acknowledged": true,        "insertedId": ObjectId("614b37296a124db40ae74d17")}

Urutan pernyataan ini akan menambahkan dokumen-dokumen ini ke koleksi Anda. Anda kemudian dapat menanyakan koleksi Anda untuk menemukan dokumen yang disisipkan:

db.mytestcoll.find().pretty(){        _id: ObjectId("614b37296a124db40ae74d16"), exampleregex: /tt/,        _id: ObjectId("614b37296a124db40ae74d17"), exampleregex: /t+/ }

Pola ekspresi reguler disimpan sebagai regex dan bukan sebagai string. Ini memungkinkan Anda untuk membuat kueri untuk string tertentu dan mendapatkan dokumen yang dikembalikan yang memiliki ekspresi reguler yang cocok dengan string yang diinginkan.



JavaScript (tanpa cakupan)

Sama seperti Regular Expression yang disebutkan sebelumnya tipe data, BSON memungkinkan MongoDB untuk menyimpan fungsi JavaScript tanpa ruang lingkup sebagai tipenya sendiri. JavaScript jenis dapat dikenali sebagai berikut:

        Type         | Number |     Alias    |  ------------------ | ------ | ------------ |      JavaScript     |   13   | "javascript" |

Menambahkan dokumen ke koleksi Anda dengan JavaScript tipe data akan terlihat seperti ini:

db.mytestcoll.insertOne({jsCode: "function(){var x; x=1}"}){        "acknowledged": true,        "insertedId": ObjectId("614b37296a124db40ae74d122")}

Fungsionalitas ini memungkinkan Anda untuk menyimpan fungsi JavaScript di dalam koleksi MongoDB Anda jika diperlukan untuk kasus penggunaan tertentu.

Catatan :Dengan MongoDB versi 4.4 dan di atasnya, jenis JavaScript alternatif, JavaScript with Scope tipe data, tidak digunakan lagi



Kesimpulan

Dalam artikel ini, kami telah membahas sebagian besar tipe data umum yang berguna saat bekerja dengan database MongoDB. Ada jenis tambahan yang tidak tercakup secara eksplisit dalam panduan ini yang mungkin berguna tergantung pada kasus penggunaan. Memulai dengan mengetahui jenis ini mencakup sebagian besar kasus penggunaan. Ini adalah dasar yang kuat untuk mulai memodelkan database MongoDB Anda.

Penting untuk mengetahui tipe data apa yang tersedia untuk Anda saat menggunakan database sehingga Anda menggunakan nilai yang valid dan mengoperasikan data dengan hasil yang diharapkan. Ada risiko yang dapat Anda hadapi tanpa mengetik data Anda dengan benar seperti yang ditunjukkan dalam Double versus Decimal128 latihan. Penting untuk memikirkan hal ini sebelum berkomitmen pada jenis apa pun.

Jika Anda tertarik untuk memeriksa Prisma dengan database MongoDB, Anda dapat melihat dokumentasi konektor data.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Set Replika MongoDB yang Terdistribusi Secara Geografis untuk Waktu Aktif 100%

  2. Pengindeksan luwak dalam kode produksi

  3. 2 Cara Mengganti Substring di MongoDB

  4. Hindari parser string URL saat ini adalah peringatan yang tidak digunakan lagi dengan menyetel useNewUrlParser ke true

  5. MongoDB $setUnion