sql >> Databáze >  >> NoSQL >> MongoDB

MySQL na MongoDB - Admin Cheat Sheet

Většina softwarových aplikací v současnosti zahrnuje nějaké dynamické ukládání dat pro rozsáhlé budoucí reference v samotné aplikaci. Všichni víme, že data jsou uložena v databázi, která spadá do dvou kategorií:relační a nerelační DBMS.

Váš výběr z těchto dvou bude plně záviset na vaší datové struktuře, množství použitých dat, výkonu databáze a škálovatelnosti.

Relační DBMS ukládají data do tabulek ve formě řádků, takže používají strukturovaný dotazovací jazyk (SQL), což z nich činí dobrou volbu pro aplikace zahrnující několik transakcí. Patří mezi ně MySQL, SQLite a PostgreSQL.

Na druhou stranu, NoSQL DBMS, jako je MongoDB, jsou orientované na dokumenty, takže data jsou uložena ve sbírkách z hlediska dokumentů. To poskytuje větší úložnou kapacitu pro velký soubor dat, a tedy další výhodu v škálovatelnosti.

V tomto blogu předpokládáme, že máte lepší znalosti o MongoDB nebo MySQL, a proto byste rádi znali korelaci mezi nimi, pokud jde o dotazování a strukturu databáze.

Níže je uveden cheat, abyste se dále seznámili s dotazováním MySQL na MongoDB.

MySQL do MongoDB Cheat Sheet – podmínky

Podmínky MySQL Podmínky MongoDB Vysvětlení
Tabulka Kolekce Toto je úložný kontejner pro data, která mají tendenci být podobná v obsažených objektech.
Řádek Dokument Definuje entitu jednoho objektu v tabulce pro MySQL a kolekci v případě MongoDB.
Sloupec Pole Každá uložená položka má vlastnosti, které jsou definovány různými hodnotami a datovými typy. V MongoDB mohou mít dokumenty ve stejné kolekci různá pole. V MySQL musí být každý řádek definován se stejnými sloupci jako ty stávající.
Primární klíč Primární klíč Každý uložený objekt je identifikován jedinečnou hodnotou pole. V případě MongoDB máme pole _id nastaveno automaticky, zatímco v MySQL si můžete definovat svůj vlastní primární klíč, který je přírůstkový, když vytváříte nové řádky.
Spojení tabulek Vkládání a propojování dokumentů Propojení spojené s objektem v jiné kolekci/tabulce k datům v jiné kolekci/tabulce.
kde $match Výběr dat, která odpovídají kritériím.
skupina $group Seskupení dat podle určitých kritérií.
drop $unset Odebrání sloupce/pole z řádku/dokumentu/
set $set Nastavení hodnoty existujícího sloupce/pole na novou hodnotu.
Somenines Staňte se MongoDB DBA – Uvedení MongoDB do produkce Zjistěte, co potřebujete vědět, abyste mohli nasadit, monitorovat, spravovat a škálovat MongoDBDdownload zdarma

Příkazy schématu

Příkazy tabulky MySQL Výkazy shromažďování MongoDB Vysvětlení

Databáze a tabulky jsou vytvořeny explicitně prostřednictvím panelu PHP admin nebo definovány ve skriptu, tj.

Vytvoření databáze

CREATE DATABASE database_name

Vytvoření tabulky

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

Databáze může být vytvořena implicitně nebo explicitně. Implicitně během prvního vložení dokumentu se vytvoří databáze a kolekce a také se do tohoto dokumentu přidá automatické pole _id.

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

Databázi můžete také vytvořit explicitně spuštěním tohoto komentáře v Mongo Shell

db.createCollection("users")

V MySQL musíte zadat sloupce v tabulce, kterou vytváříte, a také nastavit některá ověřovací pravidla, jako je v tomto příkladu typ dat a délka, která jdou do konkrétního sloupce. V případě MongoDB není nutné definovat ani pole, která by měl každý dokument obsahovat, ani pravidla ověřování, která by měla specifikovaná pole obsahovat.

Nicméně v MongoDB pro integritu a konzistenci dat můžete nastavit pravidla ověření pomocí JSON SCHEMA VALIDATOR

Upuštění stolu

DROP TABLE users
db.users.drop()

Toto jsou příkazy pro smazání tabulky pro MySQL a kolekci v případě MongoDB.

Přidání nového sloupce s názvem join_date

ALTER TABLE users ADD join_date DATETIME

Odstranění sloupce join_date, pokud je již definován

ALTER TABLE users DROP COLUMN join_date DATETIME

Přidání nového pole s názvem join_date

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

Tím se aktualizují všechny dokumenty ve sbírce tak, aby datum spojení mělo aktuální datum.

Odstranění pole join_date, pokud již bylo definováno

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

Tím se pole join_date odstraní ze všech dokumentů sbírky.

Změna struktury schématu přidáním nebo vypuštěním sloupce/pole.

Vzhledem k tomu, že architektura MongoDB striktně nevynucuje strukturu dokumentu, dokumenty mohou mít pole navzájem odlišná.

Vytvoření indexu se sloupcem UserId vzestupně a Věk sestupně

CREATE INDEX idx_UserId_asc_Age_desc
ON users(UserId)

Vytvoření indexu zahrnujícího pole UserId a Age.

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

Indexy jsou obecně vytvářeny pro usnadnění procesu dotazování.

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

Vkládání nových záznamů.

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

Smazání záznamů z tabulky/sbírky, jejichž věk je roven 25.

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

Smazání všech záznamů z tabulky/kolekce.

SELECT * FROM users
db.users.find()

Vrátí všechny záznamy z tabulky/kolekce uživatelů se všemi sloupci/polemi.

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

Vrátí všechny záznamy z tabulky/kolekce uživatelů se sloupci/polemi Věk, Pohlaví a primární klíč.

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

Vrátí všechny záznamy z tabulky/kolekce uživatelů se sloupci/polemi Věk a Pohlaví. Primární klíč je vynechán.

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

Vrátí všechny záznamy z tabulky/kolekce uživatelů, jejichž hodnota Gender je nastavena na M.

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

Vrátí všechny záznamy z tabulky/kolekce uživatelů pouze s hodnotou Pohlaví, ale jejichž hodnota Věk je rovna 25.

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

Vrátí všechny záznamy z tabulky/kolekce uživatelů, jejichž hodnota Pohlaví je nastavena na F a Věk je 25.

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

Vrátí všechny záznamy z tabulky/kolekce uživatelů, jejichž hodnota Age není rovna 25.

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

Vrátí všechny záznamy z tabulky/kolekce uživatelů, jejichž hodnota Pohlaví je nastavena na F nebo Věk je 25.

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

Vrátí všechny záznamy z tabulky/kolekce uživatelů, jejichž hodnota Age je větší než 25.

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

Vrátí všechny záznamy z tabulky/kolekce uživatelů, jejichž hodnota Age je menší nebo rovna 25.

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

Vrátí všechny záznamy z tabulky/kolekce uživatelů, jejichž hodnota Name má náhodou písmena He.

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

Vrátí všechny záznamy z tabulky/kolekce uživatelů, jejichž hodnota Gender je nastavena na F, a seřadí tento výsledek ve vzestupném pořadí sloupce id v případě MySQL a času vloženého v případě MongoDB.

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

Vrátí všechny záznamy z tabulky/kolekce uživatelů, jejichž hodnota Gender je nastavena na F, a seřadí tento výsledek v sestupném pořadí sloupce id v případě MySQL a času vloženého v případě MongoDB.

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

nebo

db.users.find().count()

Spočítá všechny záznamy v tabulce/sbírce uživatelů.

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

nebo

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

Spočítá všechny záznamy v tabulce/kolekci uživatelů, které náhodou mají hodnotu pro vlastnost Name.

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

nebo

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

Vrátí první záznam v tabulce/kolekci uživatelů.

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

Vrátí první záznam v tabulce/sbírce uživatelů, který má hodnotu Gender rovnou F.

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

Vrátí pět záznamů v tabulce/kolekci uživatelů po přeskočení prvních pěti záznamů.

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

Tím se nastaví věk všech záznamů v tabulce/sbírce uživatelů, kteří mají věk vyšší než 25 až 26.

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

Tím se zvýší stáří všech záznamů v tabulce/kolekci uživatelů o 1.

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

Tím se sníží stáří prvního záznamu v tabulce/sbírce uživatelů o 1.

Chcete-li spravovat MySQL a/nebo MongoDB centrálně a z jednoho místa, navštivte:https://severalnines.com/product/clustercontrol.


  1. Odstranění klíče/hodnoty z existující položky MongoDB

  2. Vizuální správa dokumentů a sbírek MongoDB

  3. Odpočinek dat startéru pružiny, omezení @Notnull nefunguje

  4. Odkazování na jiné schéma v Mongoose