Falando sobre argumentos para usar Mongo em vez de/junto com ES:
-
Gerenciamento de usuários/funções.
- Integrado no MongoDB. Pode não atender a todas as suas necessidades, pode ser desajeitado em algum lugar, mas existe e foi implementado há muito tempo.
- A única coisa para segurança no ES é
shield
. Mas ele é enviado apenas para assinatura Gold/Platinum para uso em produção.
-
Esquema
- ES não tem esquema, mas é construído com base no
Lucene
e escrito emJava
. A ideia central desta ferramenta - indexar e pesquisar documentos, e trabalhar desta forma requer consistência de índice. No back-end, todos os documentos devem ser ajustados emlucene
plano index, que requer algum entendimento sobre como o ES deve lidar com seus documentos e valores aninhados e como você deve organizar seus índices para manter o equilíbrio entre velocidade e integridade/consistência dos dados. Trabalhar com ES requer que você tenha em mente algumas coisas sobre esquema constantemente. Ou seja:como você pode indexar quase qualquer coisa no ES sem colocar o mapeamento correspondente antecipadamente, o ES pode "adivinhar" o mapeamento em tempo real, mas às vezes faz errado e às vezes o mapeamento implícito é ruim, porque uma vez colocado, não pode ser alterado w /o reindexando todo o índice. Portanto, é melhor não tratar o ES como uma loja sem esquema, porque você pode pisar em um rake em algum momento (e isso será dor :) ), mas trate-o como um esquema intensivo, pelo menos quando você trabalha com documentos, que podem ser divididos em campos concretos. - Mongo, por outro lado, pode "mastigar e não deixar migalhas" de quase tudo que você colocar nele. E a maioria das suas consultas funcionará bem, até você se lembrar de como o Mongo lidará com seus dados da perspectiva do JavaScript. E como o JS é fracamente tipado, você pode trabalhar com um fluxo de trabalho realmente sem esquema (com certeza, se precisar)
- ES não tem esquema, mas é construído com base no
-
Manipulação de dados não semelhantes a tabelas.
- ES é limitado a lidar com dados sem colocá-los no índice de pesquisa. E essa solução é boa o suficiente, quando você precisa armazenar e recuperar alguns dados extras (comparando com os dados que deseja pesquisar).
- MongoDB suporta
gridFS
. Isso lhe dá a capacidade de lidar com grandes blocos de dados por trás da mesma interface. Ou seja, você pode armazenar dados binários no Mongo e recuperá-los na mesma interface, da perspectiva do seu código.