Tenho certeza de que mencionei a lista algumas vezes, apesar do resultado da pesquisa do Google ser preenchido apenas com pessoas dizendo como fazer isso:
- É
eval
eval
tem habilidades naturais para ser facilmente injetado, é como um não-PDO equivalente ao SQL, se você não construir uma biblioteca de escape em grande escala em torno dele, isso o atrapalhará. Ao usar essas funções, você está substituindo efetivamente a linguagem nativa mais segura do MongoDB por algo tão inseguro quanto qualquer SQL antigo.- Requer um bloqueio global e pode ter um bloqueio de gravação e não será liberado até que a operação seja concluída, ao contrário de outras operações que serão liberadas em determinados casos.
eval
só funciona em Primárias e nunca em qualquer outro membro do conjunto de réplicas- Ele está basicamente executando, desmarcado, uma tonelada de JS em um pacote V8/spidermonkey envo que vem com o MongoDB com total capacidade de tocar em qualquer parte do seu banco de dados e comandos de administração, isso parece seguro?
- NÃO é MongoDB e nem é "MongoDBs SQL", ele roda dentro de um ambiente JS embutido, não é o próprio código MongoDBs C++ (ao contrário do framework de agregação).
- Devido ao ponto anterior, é EXTREMAMENTE lento em comparação com muitas outras opções, isso vale para
$where
uso também.
Isso deve ser suficiente para você começar nesta frente.