- MongoDB je databázový systém založený na dokumentech.
Základy
- Výraz jazyka je příkazem, který se vykoná tak, že se vyhodnotí výraz a vytiskne jeho hodnota.
- Databázi lze změnit výrazem:
- Přidání dokumentu
document
do kolekcecollection
:
- Konkrétně:
- Hodnotou výrazu
db.collection.find()
je pole všech dokumentů v kolekci.
- Dále přidání více dokumentů najednou:
- Konkrétně:
- Výraz
db.collection.drop()
zruší kolekcicollection
. Kolekce se stane prázdnou.
Operátory v dotazech
- MongoDB používá různé operátory pro vyhledávání a manipulaci s daty.
- Tyto operátory se mohou objevit v dotazech, aktualizacích, a při agregačních operacích.
- Názvy operátorů začínají znakem
$
:$eq
: rovná se$gt
,$gte
: větší než, větší nebo rovno$lt
,$lte
: menší než, menší nebo rovno$ne
: není rovno$in
: hodnota je v poli$nin
: hodnota není v poli$and
: logický operátor AND$or
: logický operátor OR$not
: logický operátor NOT$exists
: zda klíč existuje$type
: typ hodnoty klíče
- Použití například:
Logické operátory
- Podmínky lze skládat za použití logických operátorů.
- Dokument splňuje podmínku:
-
pokud splňuje všechny podmínky
condition1
,condition2
, … -
Dokument splňuje podmínku:
-
pokud splňuje aspoň jednu z podmínek
condition1
,condition2
, … -
Hodnota splňuje podmínku:
- pokud nesplňuje podmínku
condition
.
Implicitní operátory
- V dotazech, kde není specifikován žádný operátor, MongoDB implicitně používá
$eq
.
- Operátor
$and
je implicitně použit, pokud jsou ve vyhledávacím dotazu specifikovány více podmínky jako samostatné klíče ve stejném objektu.
- Operátor
$elemMatch
je implicitně použit v některých případech, kdy se provádí dotazy na pole objektů, které mají více podmínek.
- Operátor
$all
je implicitně použit, když je pole porovnáváno s více hodnotami.
Dotazy na vnořené dokumenty
- Dotazování na vnořené dokumenty vyžaduje použití tečkové notace.
- Příklad dotazu na vnořený objekt by mohl vypadat takto:
Navigace
Předchozí: Dokumentový model databáze - dokumenty, kolekce, atomické hodnoty, pole Následující: Elasticsearch - rozdělení textu na termy a základní dotazy Celý okruh: 2. Informační technologie