Operátoři

Operátory jazyka MongoDB Query Language (MQL) umožňují výkonné filtrování, porovnání a manipulaci s daty v dotazech. Zvládnutí těchto operátorů vám pomůže psát expressivní dotazy, které efektivně načítají a aktualizují dokumenty v kolekcích.

Accumulators

Operátory akumulátoru se používají v agregačních kanálech k provádění výpočtů seskupených dat.

Description
$avg Operátor $avg vypočítá průměr číselných hodnot pro dokumenty ve skupině, kontejneru nebo okně.
$bottom Operátor $bottom vrátí poslední dokument ze sady výsledků dotazu seřazené podle jednoho nebo více polí.
$bottomN Operátor $bottomN vrátí poslední N dokumenty z výsledku seřazeného podle jednoho nebo více polí.
$count Operátor $count slouží k počítání počtu dokumentů, které odpovídají kritériím filtrování dotazu.
$first Operátor $first vrátí první hodnotu ve skupině podle pořadí řazení skupiny.
$firstN Operátor $firstN seřadí dokumenty podle jednoho nebo více polí zadaných dotazem a vrátí první N dokument odpovídající kritériím filtrování.
$last Operátor $last vrátí poslední dokument z výsledku seřazeného podle jednoho nebo více polí.
$lastN Operátor $lastN akumulátoru vrátí poslední N hodnoty ve skupině dokumentů.
$max Operátor $max vrátí maximální hodnotu ze sady vstupních hodnot.
$maxN Operátor $maxN načte nejvyšší hodnoty N na základě zadaných kritérií filtrování.
$median Operátor $median vypočítá medián číselného pole ve skupině dokumentů.
$min Operátor $min načte minimální hodnotu pro zadané pole.
$minN Operátor $minN načte nejnižší hodnoty N na základě zadaných kritérií filtrování.
$percentile Operátor $percentile vypočítá percentil číselných hodnot, které odpovídají kritériím filtrování.
$stddevpop Operátor $stddevpop vypočítá směrodatnou odchylku zadaných hodnot.
$stddevsamp Operátor $stddevsamp vypočítá směrodatnou odchylku zadaného vzorku hodnot, nikoli celého základního souboru.
$sum Operátor $sum vypočítá součet hodnot pole na základě kritérií filtrování.
$top Operátor $top vrátí první dokument ze sady výsledků seřazené podle jednoho nebo více polí.
$topN Operátor $topN vrátí první N dokumenty z výsledku seřazeného podle jednoho nebo více polí.

Aggregation

Operátory agregace slouží k provádění operací seskupených dat v kanálech agregace.

Description
$addFields Fáze $addFields v kanálu agregace slouží k přidání nových polí do dokumentů.
$bucket Operátor $bucket seskupí vstupní dokumenty do kontejnerů na základě zadaných hranic.
$changeStream Fáze $changeStream otevře kurzor datového proudu změn pro sledování změn dat v reálném čase.
$collStats Fáze $collStats v kanálu agregace slouží k vrácení statistik o kolekci.
$convert Operátor $convert převede výraz na zadaný typ.
$densify Operátor $densify přidá chybějící datové body v posloupnosti hodnot v rámci pole nebo kolekce.
$documents Fáze $documents vytvoří kanál ze sady poskytnutých dokumentů.
$facet $facet umožňuje spouštění více paralelních agregací v rámci jedné fáze kanálu.
$fill Fáze $fill umožňuje vyplňování chybějících hodnot v dokumentech na základě zadaných metod a kritérií.
$geoNear Operátor $geoNear najde a seřadí dokumenty podle jejich blízkosti geoprostorového bodu a vrátí informace o vzdálenosti pro každý dokument.
$group Fáze $group seskupí dokumenty podle zadaných výrazů identifikátorů a použije výrazy akumulátoru.
$indexStats Fáze $indexStats vrací statistiky využití pro každý index v kolekci.
$isNumber Operátor $isNumber zkontroluje, jestli je zadaný výraz číselným typem.
$lookup Fáze $lookup v rámci agregace slouží k provádění levých vnějších spojení s jinými kolekcemi.
$match Fáze $match v kanálu agregace slouží k filtrování dokumentů, které odpovídají zadané podmínce.
$merge Fáze $merge v kanálu agregace zapíše výsledky agregace do zadané kolekce.
$out Fáze $out v kanálu agregace zapisuje výsledné dokumenty do zadané kolekce.
$redact Operátor $redact filtruje obsah dokumentů na základě přístupových práv.
$replaceWith Operátor $replaceWith v DocumentDB vrátí dokument po nahrazení dokumentu zadaným dokumentem.
$sample Operátor $sample v DocumentDB vrátí náhodně vybraný počet dokumentů.
$set Operátor $set v DocumentDB aktualizuje nebo vytvoří nové pole se zadanou hodnotou.
$skip Fáze $skip v kanálu agregace slouží k přeskočení zadaného počtu dokumentů ze vstupu a předání zbývajících dokumentů do další fáze kanálu.
$sort Fáze $sort v kanálu agregace slouží k seřazení dokumentů v kanálu podle zadaného pole nebo polí.
$sortByCount Fáze $sortByCount v kanálu agregace se používá k seskupení dokumentů podle zadaného výrazu a potom seřadí počet dokumentů v každé skupině v sestupném pořadí.
$toBool Operátor $toBool převede výraz na logický typ.
$toDate Operátor $toDate převede podporované typy na správný objekt Date.
$toDecimal Operátor $toDecimal převede výraz na desetinný typ.
$toDouble Operátor $toDouble převede výraz na hodnotu Double.
$toInt Operátor $toInt převede výraz na celé číslo.
$toLong Operátor $toLong převede výraz na dlouhou hodnotu.
$toObjectId Operátor $toObjectId převede výraz na ObjectId.
$toString Operátor $toString převede výraz na řetězec.
$unset Fáze $unset v kanálu agregace slouží k odebrání zadaných polí z dokumentů.
$unwind Fáze $unwind v rámci agregace slouží k dekonstrukci pole ze vstupních dokumentů k výstupu dokumentu pro každý prvek.

Aritmetický výraz

Aritmetické operátory výrazů provádějí matematické operace s číselnými hodnotami.

Description
$abs Operátor $abs vrátí absolutní hodnotu čísla.
$add Operátor $add vrátí součet dvou čísel nebo součtu data a čísel.
$ceil Operátor $ceil vrátí nejmenší celé číslo větší nebo rovno zadanému číslu.
$divide Operátor $divide rozdělí dvě čísla a vrátí podíl.
$exp Operátor $exp umocní číslo e na určený exponent a vrátí výsledek.
$floor Operátor $floor vrátí největší celé číslo menší nebo rovno zadanému číslu.
$ln Operátor $ln vypočítá přirozený logaritmus vstupu.
$log Operátor $log vypočítá logaritmus čísla v zadaném základu.
$log10 Operátor $log 10 vypočítá protokol zadaného čísla v základu 10.
$multiply Operátor $multiply vynásobí vstupní číselné hodnoty.
$pow Operátor $pow vypočítá hodnotu číselné hodnoty umocněné na mocninu zadané exponentu.
$round Operátor $round zaokrouhlí číslo na zadané desetinné místo.
$sqrt Operátor $sqrt vypočítá a vrátí druhou odmocninu vstupního čísla.
$subtract Operátor $subtract odečte dvě čísla a vrátí výsledek.
$trunc Operátor $trunc zkrátí číslo na zadané desetinné místo.
Index

Výraz pole

Operátory výrazů pole provádějí operace s poli a prvky pole.

Description
$arrayElemAt $arrayElemAt vrátí prvek v zadaném indexu pole.
$arrayToObject $arrayToObject umožňuje převod pole na jeden dokument.
$concatArrays $concatArrays slouží ke kombinování více polí do jednoho pole.
$filter Operátor $filter filtruje prvky z pole na základě zadané podmínky.
$indexOfArray Operátor $indexOfArray slouží k vyhledání elementu v poli a vrácení indexu prvního výskytu prvku.
$isArray Operátor $isArray slouží k určení, zda je zadaná hodnota pole.
$map Operátor $map umožňuje použít výraz na každý prvek v poli.
$range Operátor $range umožňuje generovat pole sekvenčních celých čísel.
$reduce Operátor $reduce aplikuje výraz na každý prvek v matici a kumuluje výsledek jako jednu hodnotu.
$reverseArray Operátor $reverseArray slouží k obrácení pořadí prvků v poli.
$slice Operátor $slice vrátí podmnožinu pole z libovolného prvku směrem dovnitř pole.
$sortArray Operátor $sortArray pomáhá seřadit prvky v poli.
$zip Operátor $zip umožňuje sloučení dvou nebo více polí s jedním polem nebo poli.

Maticový dotaz

Operátory maticových dotazů se používají k dotazování a filtrování prvků pole.

Description
$all Operátor $all pomáhá najít maticové dokumenty odpovídající všem prvkům.
$elemMatch Operátor $elemMatch vrátí úplnou matici, kvalifikující kritéria s alespoň jedním odpovídajícím prvkem pole.
$size Operátor $size slouží k dotazování dokumentů, kde pole pole má zadaný počet prvků.

Aktualizace pole

Aktualizační operátory pole slouží k úpravě prvků a struktury pole.

Description
$ Poziční operátor $ identifikuje prvek v poli, který se má aktualizovat, aniž by explicitně určil pozici prvku v matici.
$addToSet Operátor addToSet přidá elementy do pole, pokud ještě neexistují, a zároveň zajišťuje jedinečnost prvků v rámci sady.
$each Operátor $each se používá v rámci $addToSet operace nebo $push k přidání více prvků do pole pole v jedné operaci aktualizace.
$pop Operátor $pop odebere první nebo poslední prvek pole.
$position $position slouží k určení pozice v poli, kde má být vložen nový prvek.
$[] Operátor $[] slouží k aktualizaci všech prvků v poli, které odpovídají podmínce dotazu.
$[identifier] Operátor $[identifier] slouží k aktualizaci všech prvků pomocí konkrétního identifikátoru v poli, které odpovídají podmínce dotazu.
$pull Odebere všechny instance hodnoty z pole.
$pullAll Operátor $pullAll slouží k odebrání všech instancí zadaných hodnot z pole.
$push Operátor $push přidá zadanou hodnotu do pole v dokumentu.

Bitwise

Bitové operátory provádějí operace s binární reprezentací čísel.

Description
$bitAnd Operátor $bitAnd provádí bitové operace AND s celočíselnou hodnotou a vrátí výsledek jako celé číslo.
$bitNot Operátor $bitNot provádí bitovou operaci NOT s celočíselnou hodnotou a vrátí výsledek jako celé číslo.
$bitOr Operátor $bitOr provádí bitové operace OR s celočíselnou hodnotou a vrátí výsledek jako celé číslo.
$bitXor Operátor $bitXor provádí bitové operace XOR s celočíselnou hodnotou.

Bitový dotaz

Bitové operátory dotazů se používají k dotazování a filtrování na základě bitové operace.

Description
$bitsAllClear Operátor $bitsAllClear slouží ke shodě dokumentů, kde jsou jasné všechny pozice bitů zadané v maskách bitů.
$bitsAllSet Příkaz bitsAllSet slouží ke shodě dokumentů, kde jsou nastaveny všechny zadané pozice bitů.
$bitsAnyClear Operátor $bitsAnyClear odpovídá dokumentům, ve kterých jsou jasné všechny zadané pozice bitů v bitové maskě.
$bitsAnySet Operátor $bitsAnySet vrátí dokumenty, kde je některá ze zadaných pozic bitů nastavená na hodnotu 1.

Bitové aktualizace

Bitové aktualizační operátory se používají k úpravě hodnot pomocí bitové operace.

Description
$bit Operátor $bit slouží k provádění bitové operace s celočíselnou hodnotou.

Srovnávací dotaz

Operátory dotazu porovnání se používají k porovnání hodnot a vytváření logických výrazů.

Description
$cmp Operátor $cmp porovnává dvě hodnoty.
$eq Operátor dotazu $eq porovnává hodnotu pole se zadanou hodnotou.
$gt Operátor dotazu $gt načte dokumenty, ve kterých je hodnota pole větší než zadaná hodnota.
$gte Operátor $gte načte dokumenty, ve kterých je hodnota pole větší nebo rovna zadané hodnotě.
$in Operátor $in porovnává hodnotu pole s množinou uvedených hodnot.
$lt Operátor $lt načte dokumenty, ve kterých je hodnota pole menší než zadaná hodnota.
$lte Operátor $lte načte dokumenty, ve kterých je hodnota pole menší nebo rovna zadané hodnotě.
$ne Operátor $ne načte dokumenty, ve kterých se hodnota pole nerovná zadané hodnotě.
$nin Operátor $nin načte dokumenty, ve kterých hodnota pole neodpovídá seznamu hodnot.

Podmíněný výraz

Operátory podmíněného výrazu poskytují tok řízení a podmíněnou logiku ve výrazech.

Description
$cond Operátor $cond slouží k vyhodnocení podmínky a vrácení jednoho ze dvou výrazů na základě výsledku.
$ifNull Operátor $ifNull slouží k vyhodnocení výrazu a vrácení zadané hodnoty, pokud se výraz přeloží na hodnotu null.
$switch Operátor $switch slouží k vyhodnocení řady podmínek a vrácení hodnoty na základě první podmínky, která se vyhodnotí jako true.

Velikost dat

Operátory velikosti dat se používají k určení velikosti datových struktur a hodnot.

Description
$binarySize Operátor $binarySize slouží k vrácení velikosti binárního datového pole.
$bsonSize Operátor $bsonSize vrátí velikost dokumentu v bajtech při kódování BSON.

Výraz data

Operátory výrazů data provádějí operace s hodnotami data a času.

Description
$dateAdd Operátor $dateAdd k datu přidá zadaný počet časových jednotek (den, hodina, měsíc atd.).
$dateDiff Operátor $dateDiff vypočítá rozdíl mezi dvěma kalendářními daty v různých jednotkách, jako jsou roky, měsíce, dny atd.
$dateFromParts Operátor $dateFromParts vytvoří datum z jednotlivých komponent.
$dateFromString Operátor $dateDiff převede řetězec data a času na objekt kalendářního data.
$dateSubtract Operátor $dateSubtract odečte zadanou dobu od data.
$dateToParts Operátor $dateToParts rozloží datum do jednotlivých částí, jako je rok, měsíc, den a další.
$dateToString Operátor $dateToString převede objekt data na formátovaný řetězec.
$dateTrunc Operátor $dateTrunc zkrátí datum na zadanou jednotku.
$dayOfMonth Operátor $dayOfMonth extrahuje den v měsíci od data.
$dayOfWeek Operátor $dayOfWeek extrahuje den v týdnu od data.
$dayOfYear Operátor $dayOfYear extrahuje den v roce od data.
$hour Operátor $hour vrátí hodinovou část data jako číslo od 0 do 23.
$isoDayOfWeek Operátor $isoDayOfWeek vrátí číslo dne v týdnu ve formátu ISO 8601 v rozsahu od 1 (pondělí) do 7 (neděle).
$isoWeek Operátor $isoWeek vrátí číslo týdne roku ve formátu ISO 8601 v rozsahu od 1 do 53.
$isoWeekYear Operátor $isoWeekYear vrátí číslo roku ve formátu ISO 8601, který se může lišit od kalendářního roku pro data na začátku nebo konci roku.
$millisecond Operátor $millisecond extrahuje část milisekund z hodnoty data.
$minute Operátor $minute extrahuje minutovou část z hodnoty data.
$month Operátor $month extrahuje část měsíce z hodnoty data.
$second Operátor $second extrahuje část sekund z hodnoty data.
$week Operátor $week vrátí číslo týdne pro datum jako hodnotu mezi 0 a 53.
$year Operátor $year vrátí rok pro datum jako čtyřciferné číslo.

Dotaz elementu

Operátory dotazu elementů se používají k dotazování prvků dokumentu na základě jejich existence a typu.

Description
$exists Operátor $exists načte dokumenty, které obsahují zadané pole v jejich struktuře dokumentu.
$type Operátor $type načte dokumenty, pokud je vybrané pole zadaného typu.

Vyhodnocovací dotaz

Operátory vyhodnocovacích dotazů se používají k vyhodnocení výrazů a provádění dynamických operací.

Description
$expr Operátor $expr umožňuje použití agregačních výrazů v dotazovacím jazyce, což umožňuje komplexní porovnání polí a výpočty.
$jsonSchema Operátor $jsonSchema ověřuje dokumenty v definici schématu JSON pro ověřování dat a vynucení struktury. Objevte podporované funkce a omezení.
$mod Operátor $mod provede operaci modulo s hodnotou pole a vybere dokumenty se zadaným výsledkem.
$regex Operátor $regex poskytuje možnosti regulárního výrazu pro porovnávání vzorů v dotazech, což umožňuje flexibilní porovnávání řetězců a vyhledávání.
$text Operátor $text provádí vyhledávání textu v obsahu indexovaných polí řetězců, což umožňuje funkce fulltextového vyhledávání.

Aktualizace pole

Operátory aktualizace polí se používají k úpravě konkrétních polí v dokumentech během operací aktualizace.

Description
$currentDate Operátor $currentDate nastaví hodnotu pole na aktuální datum, a to buď jako datum, nebo časové razítko.
$inc Operátor $inc zvýší hodnotu pole o zadanou částku.
$mul Operátor $mul vynásobí hodnotu pole zadaným číslem.
$rename Operátor $rename umožňuje přejmenování polí v dokumentech během operací aktualizace.
$setOnInsert Operátor $setOnInsert nastaví hodnoty polí pouze v případech, kdy operace upsertu způsobí vložení nového dokumentu.

Geospatial

Geoprostorové operátory provádějí operace s geografickými daty a prostorovými vztahy.

Description
$box Operátor $box definuje obdélníkovou oblast pro geoprostorové dotazy pomocí párů souřadnic.
$center Operátor $center určuje kruh pomocí starších dvojic souřadnic pro dotazy $geoWithin.
$centerSphere Operátor $centerSphere určuje kruh pomocí kulové geometrie pro dotazy $geoWithin.
$geoIntersects Operátor $geoIntersects vybere dokumenty, jejichž pole umístění protíná se zadaným objektem GeoJSON.
$geometry Operátor $geometry určuje geometrii GeoJSON pro geoprostorové dotazy.
$geoWithin Operátor $geoWithin vybere dokumenty, jejichž pole umístění je zcela v zadané geometrii.
$maxDistance Operátor $maxDistance určuje maximální vzdálenost, která může existovat mezi dvěma body v geoprostorovém dotazu.
$minDistance Operátor $minDistance určuje minimální vzdálenost, která musí existovat mezi dvěma body v geoprostorovém dotazu.
$near Operátor $near vrátí dokumenty s poli umístění, která jsou blízko zadaného bodu seřazená podle vzdálenosti.
$nearSphere Operátor $nearSphere vrátí dokumenty, jejichž pole umístění jsou blízko zadaného bodu na kouli seřazené podle vzdálenosti na kulové ploše.
$polygon Operátor $polygon definuje mnohoúhelník pro geoprostorové dotazy, což umožňuje najít místa v nepravidelných tvarech.

Literálový výraz

Operátory literálových výrazů se používají k reprezentaci hodnot literálů ve výrazech agregace.

Description
$literal Operátor $literal vrátí zadanou hodnotu bez jeho analýzy jako výrazu, což umožňuje použití hodnot literálů v kanálech agregace.

Logický dotaz

Logické operátory dotazů kombinují logické výrazy pomocí logických operací.

Description
$and Operátor $and spojí více klauzulí dotazu a vrátí dokumenty, které odpovídají všem zadaným podmínkám.
$nor Operátor $nor provede logickou hodnotu NOR v poli výrazů a načte dokumenty, které selžou všechny podmínky.
$not Operátor $not provádí logickou operaci NOT u zadaného výrazu a vybere dokumenty, které neodpovídají výrazu.
$or Operátor $or spojí klauzule dotazu s logickou hodnotou OR a vrátí dokumenty, které odpovídají alespoň jedné ze zadaných podmínek.

Miscellaneous

Různé operátory zahrnují různé utility a pomocné operátory, které se nevejdou do jiných kategorií.

Description
$getField Operátor $getField umožňuje načtení hodnoty zadaného pole z dokumentu.
$sampleRate Operátor $sampleRate náhodně vzorkuje dokumenty z kolekce na základě zadané pravděpodobnosti, užitečné pro statistickou analýzu a testování.

Různé dotazy

Různé operátory dotazů zahrnují různé utility a pomocné operátory pro dotazování, které se nevejdou do jiných kategorií.

Description
$comment Operátor $comment přidá do dotazu komentář, který pomůže identifikovat dotaz v protokolech a výstupu profileru.
$natural Operátor $natural vynutí dotaz, aby používal přirozený pořadí dokumentů v kolekci, čímž zajišťuje kontrolu nad řazením a načítáním dokumentů.
$rand Operátor $rand generuje náhodnou hodnotu float mezi 0 a 1.

Výraz objektu

Operátory výrazů objektů provádějí operace s objekty a vlastnostmi objektu.

Description
$mergeObjects Operátor $mergeObjects sloučí více dokumentů do jednoho dokumentu.
$objectToArray ObjectToArray příkaz slouží k transformaci dokumentu (objektu) na pole párů klíč-hodnota.
$setField Příkaz setField slouží k přidání, aktualizaci nebo odebrání polí v vložených dokumentech.

Projection

Operátory projekce slouží k výběru a transformaci polí v dokumentech.

Description
$meta Operátor $meta vrátí sloupec počítaných metadat s vrácenou datovou sadou.

Nastavit výraz

Operátory výrazů sady provádějí operace se sadami a poli, které jsou považovány za sady.

Description
$allElementsTrue Operátor $allElementsTrue vrátí hodnotu true, pokud se všechny prvky v poli vyhodnotí jako true.
$anyElementTrue Operátor $anyElementTrue vrátí hodnotu true, pokud se některý prvek v poli vyhodnotí jako hodnota true.
$setDifference Operátor $setDifference vrátí sadu s prvky, které existují v jedné sadě, ale ne ve druhé sadě.
$setEquals Operátor $setEquals vrátí hodnotu true, pokud dvě sady mají stejné odlišné prvky.
$setIntersection Operátor $setIntersection vrátí společné prvky, které se zobrazují ve všech vstupních polích.
$setIsSubset Operátor $setIsSubset určuje, zda je jedno pole podmnožinou druhého pole.
$setUnion Operátor $setUnion vrátí matici, která obsahuje všechny jedinečné prvky ze vstupních polí.

Výraz časového razítka

Operátory výrazů časového razítka provádějí operace s hodnotami časového razítka.

Description
$tsIncrement Operátor $tsIncrement extrahuje přírůstkovou část z hodnoty časového razítka.
$tsSecond Operátor $tsSecond extrahuje sekundovou část z hodnoty časového razítka.

Výraz proměnné

Operátory výrazů proměnných se používají k definování a odkaz na proměnné ve výrazech.

Description
$let Operátor $let umožňuje definovat proměnné pro použití v zadaném výrazu, což umožňuje složité výpočty a snížení opakování kódu.

Operátory oken

Operátory oken provádějí výpočty v sadě dokumentů v zadaném okně.

Description
$covariancePop Operátor $covariancePop vrátí kovarianci dvou číselných výrazů.
$covarianceSamp Operátor $covarianceSamp vrátí kovarianci vzorku dvou číselných výrazů.
$denseRank Operátor $denseRank přiřadí a vrátí poziční pořadí pro každý dokument v rámci oddílu na základě zadaného pořadí řazení.
$derivative Operátor $derivative vypočítá průměrnou míru změny hodnoty pole v zadaném okně.
$documentNumber Operátor $documentNumber přiřadí a vrátí pozici pro každý dokument v rámci oddílu na základě zadaného pořadí řazení.
$expMovingAvg Operátor $expMovingAvg vypočítá klouzavý průměr pole na základě zadaného počtu dokumentů pro nejvyšší váhu.
$integral Operátor $integral vypočítá oblast pod křivkou se zadaným rozsahem dokumentů tvořících sousední dokumenty pro výpočet.
$linearFill Operátor $linearFill interpoluje chybějící hodnoty v posloupnosti dokumentů pomocí lineární interpolace.
$locf Operátor $locf rozšíří poslední pozorovanou hodnotu, která není null, vpřed v rámci oddílu v okně dotazu.
$rank Operátor $rank řadí dokumenty v rámci oddílu na základě zadaného pořadí řazení.
$shift usage on DocumentDB Operátor okna, který posune hodnoty v rámci partice a vrátí posunutou hodnotu.