Parlando di argomenti da utilizzare Mongo invece di/insieme a ES:
-
Gestione utenti/ruoli.
- Integrato in MongoDB. Potrebbe non adattarsi a tutte le tue esigenze, potrebbe essere goffo da qualche parte, ma esiste ed è stato implementato abbastanza tempo fa.
- L'unica cosa per la sicurezza in ES è
shield
. Ma viene fornito solo per l'abbonamento Gold/Platinum per l'uso in produzione.
-
Schema
- ES è senza schema, ma è basato su
Lucene
e scritto inJava
. L'idea centrale di questo strumento - indicizzare e cercare documenti, e lavorare in questo modo richiede la coerenza dell'indice. Nella parte posteriore, tutti i documenti devono essere inseriti inlucene
piatto index, che richiede una certa comprensione di come ES dovrebbe gestire i tuoi documenti e valori nidificati e come dovresti organizzare i tuoi indici per mantenere l'equilibrio tra velocità e completezza/coerenza dei dati. Lavorare con ES richiede di tenere costantemente a mente alcune cose sullo schema. Cioè:poiché puoi indicizzare quasi tutto su ES senza mettere in anticipo la mappatura corrispondente, ES può "indovinare" la mappatura al volo ma a volte sbagliare ea volte la mappatura implicita è malvagia, perché una volta inserita, non può essere modificata w /o reindicizzazione dell'intero indice. Quindi, è meglio non trattare ES come un negozio senza schema, perché puoi calpestare un rake un po' di tempo (e questo sarà dolore :) ), ma piuttosto trattalo come uno schema intensivo, almeno quando lavori con documenti, che possono essere suddivisi in campi concreti. - Mongo, d'altra parte, può "masticare e non lasciare briciole" da quasi tutto ciò che ci metti dentro. E la maggior parte delle tue query funzionerà bene, finché non ricorderai come Mongo tratterà i tuoi dati dal punto di vista JavaScript. E poiché JS è debolmente tipizzato, puoi lavorare con un flusso di lavoro davvero senza schema (di sicuro, se ne hai bisogno)
- ES è senza schema, ma è basato su
-
Gestione di dati non di tipo tabellare.
- ES è limitato a gestire i dati senza metterli nell'indice di ricerca. E questa soluzione è abbastanza buona, quando è necessario archiviare e recuperare alcuni dati extra (rispetto ai dati in cui si desidera eseguire la ricerca).
- MongoDB supporta
gridFS
. Ciò ti dà la possibilità di gestire grandi blocchi di dati dietro la stessa interfaccia. Vale a dire, puoi archiviare dati binari in Mongo e recuperarli all'interno della stessa interfaccia, dalla prospettiva del tuo codice.