Um começo com o MongoDB seria analisar cada mensagem para hashtags que o usuário usou e colocá-las em uma sub-matriz do documento. Exemplo de atualização de status:
Esta mensagem ficaria assim no MongoDB:
{
author: "Peter",
date: ISODate("2014-04-29 12:28:34"),
text: "Hello friends, I visited the #tradeshow in #washington and drank a delicious #coffee",
hashtags: [
"tradeshow",
"washington",
"coffee"
]
}
Quando você cria um índice em
db.collection.hashtags
você pode pesquisar rapidamente todas as mensagens que incluem uma dessas hashtags. Você provavelmente deseja ordenar e limitar os resultados por data para que o usuário veja primeiro os resultados mais recentes. Quando você o torna um índice composto que também inclui a data, você também pode acelerar isso. Como implementar tópicos de "tendência" é uma questão bastante complexa. Também é muito subjetivo, dependendo do que você consideraria "tendência". Os algoritmos exatos que o Twitter ou o Facebook usam para determinar quais tópicos estão em alta ou não não são públicos. De acordo com vários analistas de mídia social, eles também os mudam com frequência, então podemos supor que eles são bastante complexos agora.
Isso significa que não podemos ajudá-lo a criar um algoritmo por conta própria. Mas quando você já tem um algoritmo em mente para calcular a "tendência" de uma hashtag, podemos ajudá-lo a encontrar uma boa implementação.