OK, quindi sto costruendo un'applicazione basata su Node.js e sto usando mangusta per gestire la mia connessione a mongodb. Ho un endpoint che è tale:Perché la mia chiamata di mongodb è così lenta?
getTestStream : function(req, res, conditions, callback) {
Activity.find()
.limit(1000)
.run(function(err, activities) {
if (err){
util.sendError(req, res, "Query Error", err);
} else if (activities) {
res.send(activities);
} else {
util.send('nope');
}
});
}
Per qualche motivo questa chiamata richiede 700 ms + per completare. La stessa chiamata senza nemmeno applicare un limite fatto da shell mongodb ritorna in circa 4ms. Sembra una query così semplice, quindi cosa lo rallenta così tanto? Immagino che mi sia sfuggito qualcosa di ovvio nella configurazione da qualche parte, ma non ne ho idea.
Grazie a tutti coloro che possono aiutare in questo.
Altre info:
[email protected]
[email protected]
[email protected]
io non sono estremamente familiarità con mangusta, quindi questo è solo un colpo nel Buio Avete bisogno di specificare il limite prima che il comando find? Perché forse sta andando fuori e recuperando i record subito a find(), e quindi stai cercando di ri-limitarlo in qualche modo? Questo sembra in qualche modo simile alla tua domanda: http://stackoverflow.com/questions/5539955/how-to-paginate-with-mongoose-in-node-js –
La modifica della query per includere il limite come segue non influisce sulle prestazioni in qualsiasi modo ovvio. Activity.find ({}, {limit: 1000}) .run (funzione (err, attività) { –
Quanto sono grandi i tuoi documenti? Puoi pubblicare un file db.coll.stats(). –