Jeg er sikker på, at jeg har angivet listen et par gange, selvom Google-søgeresultatet kun er fyldt med folk, der fortæller dig, hvordan du gør det:
- Det er
eval
eval
har naturlige evner til nemt at blive injiceret, det er som en ikke-PDO-ækvivalent til SQL, hvis du ikke bygger et fuldskala-undslippende bibliotek omkring det, vil det rode dig. Ved at bruge disse funktioner erstatter du effektivt det sikrere modersmål i MongoDB med noget, der er lige så usikkert som enhver gammel SQL derude.- Den kræver en global lås og kan tage skrivelås og vil ikke udløses, før handlingen er fuldstændig udført, i modsætning til andre operationer, som vil udløses i visse tilfælde.
eval
virker kun på Primaries og aldrig noget andet medlem af replikasættet- Det kører dybest set, ukontrolleret, et ton JS i en bundtet V8/spidermonkey envo, der kommer med MongoDB med fuld evne til at røre ved enhver del af din database og admin-kommandoer, lyder det sikkert?
- Det er IKKE MongoDB, og det er heller ikke "MongoDBs SQL", det kører i et indbygget JS-miljø, ikke selve MongoDBs C++-kode (i modsætning til aggregeringsrammerne).
- På grund af det foregående punkt er det EKSTREMT langsom i forhold til mange andre muligheder, dette gælder for
$where
også brug.
Det burde være nok til at få dig i gang på denne front.