Jsem si jistý, že jsem seznam uvedl několikrát, přestože výsledek vyhledávání Google je zaplněn pouze lidmi, kteří vám říkají, jak to udělat:
- Je
eval
eval
má přirozené schopnosti snadno se injektovat, je to jako ne-PDO ekvivalent k SQL, pokud kolem něj nevybudujete plnohodnotnou únikovou knihovnu, bude vás zmatkovat. Používáním těchto funkcí efektivně nahrazujete bezpečnější nativní jazyk MongoDB něčím, co je stejně nejisté jako jakýkoli starý SQL.- Na rozdíl od jiných operací, které se v určitých případech uvolní, je potřeba globální zámek a může se zablokovat zápis a neuvolní se, dokud není operace úplně dokončena.
eval
funguje pouze na Primary a nikdy na žádném jiném členu sady replik- V podstatě běží, nekontrolováno, tuna JS v přibaleném V8/spidermonkey envo, které je dodáváno s MongoDB s plnou schopností dotýkat se jakékoli části vaší databáze a příkazů správce, zní to bezpečně?
- NENÍ MongoDB a ani to není „MongoDBs SQL“, běží v rámci integrovaného prostředí JS, nikoli samotného kódu MongoDBs C++ (na rozdíl od agregačního rámce).
- Vzhledem k předchozímu bodu je ve srovnání s mnoha jinými možnostmi EXTRÉMNĚ pomalý, to platí pro
$where
použití také.
To by vám mělo stačit, abyste na této frontě začali.