È molto probabile che tu stia colpendo un collo di bottiglia molto comune in MongoDB. Dato che aggiorni documenti molto frequentemente aggiungendo stringhe, ci sono buone probabilità che tu stia esaurendo lo spazio per quel documento e costringendo il database a spostare costantemente quel documento in uno spazio diverso in memoria\disco riscrivendolo alla fine del file di dati.
L'aggiunta di indici può solo compromettere le prestazioni di scrittura, quindi non aiuterà a migliorare le prestazioni a meno che tu non abbia una lettura pesante.
Prenderei in considerazione la possibilità di modificare la logica dell'applicazione per eseguire questa operazione:
- Indice nel campo della parola chiave
- Prima di inserire qualcosa nel database ogni volta che rilevi un tweet, ricerca il documento che contiene la parola chiave. Se non esiste, inserisci un nuovo documento ma riempi gli
ids
proprietà aggiungendo un intero gruppo di stringhe false nell'array. Quindi, subito dopo averlo inserito, rimuovi tutti gli ID da quell'array. Ciò farà sì che mongodb allochi spazio aggiuntivo per l'intero documento in modo che quando inizi ad aggiungere ID al campo ID, avrà molto spazio per crescere. - Inserisci l'id del tweet negli
ids
campo