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

MySQL ke MongoDB - Lembar Cheat Admin

Sebagian besar aplikasi perangkat lunak saat ini melibatkan beberapa penyimpanan data dinamis untuk referensi ekstensif di masa mendatang dalam aplikasi itu sendiri. Kita semua tahu bahwa data disimpan dalam database yang terbagi dalam dua kategori yaitu:DBMS relasional dan non-relasional.

Pilihan pilihan Anda dari keduanya akan sepenuhnya bergantung pada struktur data Anda, jumlah data yang terlibat, kinerja database, dan skalabilitas.

DBMS relasional menyimpan data dalam tabel dalam bentuk baris sehingga mereka menggunakan Structured Querying Language (SQL) menjadikannya pilihan yang baik untuk aplikasi yang melibatkan beberapa transaksi. Mereka termasuk MySQL, SQLite, dan PostgreSQL.

Di sisi lain, DBMS NoSQL seperti MongoDB berorientasi pada dokumen sehingga data disimpan dalam kumpulan dokumen. Ini memberikan kapasitas penyimpanan yang lebih besar untuk kumpulan data yang besar sehingga keuntungan lebih lanjut dalam skalabilitas.

Di blog ini kami berasumsi Anda memiliki pengetahuan yang lebih baik untuk MongoDB atau MySQL dan karenanya ingin mengetahui korelasi antara keduanya dalam hal kueri dan struktur basis data.

Di bawah ini adalah lembar contekan untuk lebih membiasakan diri Anda dengan query MySQL ke MongoDB.

Lembar Cheat MySQL ke MongoDB - Persyaratan

Persyaratan MySQL Persyaratan MongoDB Penjelasan
Tabel Koleksi Ini adalah wadah penyimpanan data yang cenderung mirip dengan objek yang ditampung.
Baris Dokumen Mendefinisikan entitas objek tunggal dalam tabel untuk MySQL dan koleksi dalam kasus MongoDB.
Kolom Bidang Untuk setiap item yang disimpan, ia memiliki properti yang ditentukan oleh nilai dan tipe data yang berbeda. Di MongoDB, dokumen dalam koleksi yang sama, mungkin memiliki bidang yang berbeda satu sama lain. Di MySQL, setiap baris harus didefinisikan dengan kolom yang sama dari yang sudah ada.
Kunci utama Kunci utama Setiap objek yang disimpan diidentifikasi dengan nilai bidang unik dalam kasus MongoDB kami memiliki bidang _id yang disetel secara otomatis sedangkan di MySQL Anda dapat menentukan kunci utama Anda sendiri yang bersifat inkremental saat Anda membuat baris baru.
Tabel Bergabung Menyematkan dan menautkan dokumen Koneksi yang terkait dengan objek di koleksi/tabel berbeda ke data di koleksi/tabel lain.
di mana $match Memilih data yang sesuai dengan kriteria.
grup $group Mengelompokkan data menurut beberapa kriteria.
jatuhkan $tidak disetel Menghapus kolom/bidang dari baris/dokumen/
setel $set Menyetel nilai kolom/bidang yang ada ke nilai baru.
Beberapa Sembilan Menjadi DBA MongoDB - Membawa MongoDB ke ProduksiPelajari tentang apa yang perlu Anda ketahui untuk menerapkan, memantau, mengelola, dan menskalakan MongoDBUnduh secara Gratis

Pernyataan Skema

Pernyataan Tabel MySQL Pernyataan Koleksi MongoDB Penjelasan

Basis data dan tabel dibuat secara eksplisit melalui panel admin PHP atau ditentukan dalam skrip yaitu

Membuat Basis Data

CREATE DATABASE database_name

Membuat tabel

CREATE TABLE users (
    id MEDIUMINT NOT NULL
        AUTO_INCREMENT,
    UserId Varchar(30),
    Age Number,
    Gender char(1),
    Name VarChar(222),
    PRIMARY KEY (id)
)

Basis data dapat dibuat secara implisit atau eksplisit. Secara implisit selama penyisipan dokumen pertama, database dan koleksi dibuat serta bidang _id otomatis ditambahkan ke dokumen ini.

db.users.insert( {
    UserId: "user1",
    Age: 55,
    Name: "Berry Hellington",
    Gender: "F",
 } )

Anda juga dapat membuat database secara eksplisit dengan menjalankan komentar ini di Mongo Shell

db.createCollection("users")

Di MySQL, Anda harus menentukan kolom dalam tabel yang Anda buat serta menetapkan beberapa aturan validasi seperti dalam contoh ini jenis data dan panjang yang masuk ke kolom tertentu. Dalam kasus MongoDB, bukanlah suatu keharusan untuk mendefinisikan baik field yang harus dimiliki setiap dokumen maupun aturan validasi yang harus dimiliki oleh field yang ditentukan.

Namun, di MongoDB untuk integritas dan konsistensi data, Anda dapat mengatur aturan validasi menggunakan JSON SCHEMA VALIDATOR

Menjatuhkan meja

DROP TABLE users
db.users.drop()

Ini adalah pernyataan untuk menghapus tabel untuk MySQL dan koleksi dalam kasus MongoDB.

Menambahkan kolom baru bernama join_date

ALTER TABLE users ADD join_date DATETIME

Menghapus kolom join_date jika sudah ditentukan

ALTER TABLE users DROP COLUMN join_date DATETIME

Menambahkan bidang baru bernama join_date

db.users.updateMany({},{$set:{‘join_date’: new Date()})

Ini akan memperbarui semua dokumen dalam koleksi untuk memiliki tanggal bergabung sebagai tanggal saat ini.

Menghapus bidang join_date jika sudah ditentukan

db.users.updateMany({},{$unset:{‘join_date’: “”})

Ini akan menghapus bidang join_date dari semua dokumen koleksi.

Mengubah struktur skema dengan menambahkan atau menghapus kolom/bidang.

Karena arsitektur MongoDB tidak diterapkan secara ketat pada struktur dokumen, dokumen mungkin memiliki bidang yang berbeda satu sama lain.

Membuat indeks dengan kolom UserId naik dan Usia turun

CREATE INDEX idx_UserId_asc_Age_desc
ON users(UserId)

Membuat indeks yang melibatkan bidang UserId dan Age.

db.users.ensureIndex( { UserId: 1, Age: -1 } )

Indeks umumnya dibuat untuk memfasilitasi proses kueri.

INSERT INTO users(UserId,
                  Age,
                  Gender)
VALUES ("user1",
        25,
        "M")
db.users.insert( {
       UserId: "bcd001",
       Age: 25,
       Gender: "M",
     Name: "Berry Hellington",
} )

Memasukkan catatan baru.

DELETE FROM users
WHERE Age = 25
db.users.deleteMany( { Age = 25 } )

Menghapus record dari tabel/koleksi yang umurnya sama dengan 25.

DELETE FROM users
db.users.deleteMany({})

Menghapus semua record dari tabel/koleksi.

SELECT * FROM users
db.users.find()

Mengembalikan semua catatan dari tabel/koleksi pengguna dengan semua kolom/bidang.

SELECT id, Age, Gender FROM users
db.users.find(
   { },
   { Age: 1, Gender: 1 }
)

Mengembalikan semua catatan dari tabel/koleksi pengguna dengan kolom/bidang Usia, Jenis Kelamin, dan kunci utama.

SELECT  Age, Gender FROM users
db.users.find(
   { },
 { Age: 1, Gender: 1,_id: 0}
)

Mengembalikan semua catatan dari tabel/koleksi pengguna dengan kolom/bidang Usia dan Jenis Kelamin. Kunci utama dihilangkan.

SELECT * FROM users WHERE Gender = “M”
db.users.find({ Gender: "M"})

Mengembalikan semua catatan dari tabel/koleksi pengguna yang nilai Gendernya diatur ke M.

SELECT Gender FROM users WHERE Age = 25
db.users.find({ Age: 25}, { _id: 0, Gender: 1})

Mengembalikan semua record dari tabel/koleksi pengguna dengan hanya nilai Gender tetapi nilai Age sama dengan 25.

SELECT * FROM users WHERE Age = 25 AND Gender = ‘F’
db.users.find({ Age: 25, Gender: "F"})

Mengembalikan semua record dari tabel/koleksi pengguna yang nilai Gendernya diatur ke F dan Age adalah 25.

SELECT * FROM users WHERE  Age != 25
db.users.find({ Age:{$ne: 25}})

Mengembalikan semua catatan dari tabel/koleksi pengguna yang nilai Usianya tidak sama dengan 25.

SELECT * FROM users WHERE Age = 25 OR Gender = ‘F’
db.users.find({$or:[{Age: 25, Gender: "F"}]})

Mengembalikan semua record dari tabel/koleksi pengguna yang nilai Gendernya diatur ke F atau Age adalah 25.

SELECT * FROM users WHERE Age > 25
db.users.find({ Age:{$gt: 25}})

Mengembalikan semua catatan dari tabel/koleksi pengguna yang nilai Usianya lebih besar dari 25.

SELECT * FROM users WHERE Age <= 25
db.users.find({ Age:{$lte: 25}})

Mengembalikan semua catatan dari tabel/koleksi pengguna yang nilai Usianya kurang dari atau sama dengan 25.

SELECT Name FROM users WHERE Name like "He%"
db.users.find(
  { Name: /He/ }
)

Mengembalikan semua record dari tabel/koleksi pengguna yang nilai Name-nya kebetulan memiliki huruf He.

SELECT * FROM users WHERE Gender = ‘F’ ORDER BY id ASC
db.users.find( { Gender: "F" } ).sort( { $natural: 1 } )

Mengembalikan semua catatan dari tabel/koleksi pengguna yang nilai Gendernya diatur ke F dan mengurutkan hasil ini dalam urutan menaik dari kolom id untuk MySQL dan waktu yang dimasukkan dalam kasus MongoDB.

SELECT * FROM users WHERE Gender = ‘F’ ORDER BY id DESC
db.users.find( { Gender: "F" } ).sort( { $natural: -1 } )

Mengembalikan semua catatan dari tabel/koleksi pengguna yang nilai Gendernya diatur ke F dan mengurutkan hasil ini dalam urutan menurun dari kolom id dalam kasus MySQL dan waktu yang dimasukkan dalam kasus MongoDB.

SELECT COUNT(*) FROM users
db.users.count()

atau

db.users.find().count()

Menghitung semua record di tabel/koleksi pengguna.

SELECT COUNT(Name) FROM users
db.users.count({Name:{ $exists: true }})

atau

db.users.find({Name:{ $exists: true }}).count()

Menghitung semua record dalam tabel/koleksi pengguna yang kebetulan memiliki nilai untuk properti Name.

SELECT * FROM users LIMIT 1
db.users.findOne()

atau

db.users.find().limit(1)

Mengembalikan record pertama di tabel/koleksi pengguna.

SELECT * FROM users WHERE Gender = ‘F’ LIMIT 1
db.users.find( { Gender: "F" } ).limit(1)

Mengembalikan record pertama dalam tabel/koleksi pengguna yang kebetulan memiliki nilai Gender sama dengan F.

SELECT * FROM users LIMIT 5 SKIP 10
db.users.find().limit(5).skip(10)

Mengembalikan lima catatan dalam tabel/koleksi pengguna setelah melewatkan lima catatan pertama.

UPDATE users SET Age = 26 WHERE age > 25
db.users.updateMany(
  { age: { $gt: 25 } },
  { $set: { Age: 26 } }
)

Ini menetapkan usia semua catatan di tabel/koleksi pengguna yang memiliki usia lebih dari 25 hingga 26 tahun.

UPDATE users SET age = age + 1
db.users.updateMany(
  {} ,
  { $inc: { age: 1 } }
)

Ini meningkatkan usia semua catatan di tabel/koleksi pengguna sebesar 1.

UPDATE users SET age = age - 1
WHERE id = 1
db.users.updateMany(
  {} ,
  { $inc: { age: -1 } }
)

Ini mengurangi usia catatan pertama di tabel/koleksi pengguna sebesar 1.

Untuk mengelola MySQL dan/atau MongoDB secara terpusat dan dari satu titik, kunjungi:https://severalnines.com/product/clustercontrol.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Pilih catatan yang cocok dengan nilai concat dari dua bidang di mongodb

  2. Menyimpan beberapa file kecil (di bawah 1 MB) dengan MongoDB di NodeJS TANPA GridFS

  3. Bagaimana cara streaming Hasil Kueri MongoDB dengan nodejs?

  4. SQL LPAD()

  5. Membangun mongo-cxx-driver menggunakan CMake ExternalProject_Add