Como melhorar o desempenho da atualização () e salvar () no MongoDB?

Estou procurando dicas sobre como melhorar o desempenho do banco de dados na seguinte situaçã

Como exemplo de aplicativo, escrevi hoje um aplicativo bastante simples que usa a API de streaming do Twitter para pesquisar determinadas palavras-chave e, em seguida, estou armazenando os resultados no MongoDB. O aplicativo foi escrito com Node.js.

Estou armazenando 2 coleções. Um armazena a palavra-chave e uma série de IDs de tweets que referenciam cada tweet encontrado mencionando essa palavra-chave. Eles estão sendo adicionados ao banco de dados usando .update () com {upsert: true}, para que novos IDs sejam anexados à matriz 'ids'.

Um documento de amostra desta coleção é assim:

{"_id": ObjectId ("4e00645ef58a7ad3fc9fd9f9"), "ids": ["id1", "id2", "id3"], "palavra-chave": "#chocolate"}

Código de atualização:

 keywords.update({keyword: key_word},{$push:{ids: id}},{upsert:true}, function(err){})

A segunda coleção se parece com isso e é adicionada simplesmente usando .save ()

 {
     "twt_id": "id1",
     "tweet": { //big chunk of json that doesn't need to be shown }
 }

Eu tenho isso rodando no meu Macbook agora e já dura 2 horas. Estou armazenando ummuit de dados, provavelmente várias centenas de documentos por minuto. No momento, o número de objetos no Mongodb é 120k +.

O que estou notando é que o uso da CPU no processo de banco de dados está chegando a 84% e tem aumentado constantemente gradualmente desde que iniciei a última execução de test

Eu estava lendo sobre a definição de índices, mas como estou adicionando documentos e não executando consultas contra eles, não tenho certeza se os índices ajudarão. Um outro pensamento que me ocorreu é que update () pode estar fazendo uma pesquisa, já que estou usando $ push e que um índice pode ajudar com iss

O que devo procurar para impedir que o MongoDB consuma quantidades cada vez maiores de CPU?

questionAnswers(3)

yourAnswerToTheQuestion