W porządku, więc buduję aplikację opartą na Node.js i używam mangusty do obsługi mojego połączenia z mongodb. Mam punkt końcowy, który jest taki:Dlaczego mój mongodb nazywa się tak wolno?
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');
}
});
}
Z jakiegoś powodu ta rozmowa trwa 700ms +. To samo połączenie bez zastosowania limitu z powłoki mongody powraca w około 4ms. Wygląda na to, że jest to takie proste zapytanie, więc co go tak spowalnia? Zgaduję, że przegapiłem coś oczywistego w konfiguracji, ale nie mam pojęcia.
Dziękuję każdemu, kto może w tym pomóc.
Inne info:
[email protected]
[email protected]
[email protected]
nie jestem bardzo obeznany z mangusta, więc jest to po prostu strzał w jaśniejszych Czy trzeba podać swój limit przed komendą znaleźć? Ponieważ może to wyjść i pobrać rekordy od razu w find(), a następnie próbujesz w jakiś sposób go ponownie ograniczyć? Wygląda to nieco podobnie do twojego pytania: http://stackoverflow.com/questions/5539955/how-to-paginate-with-mongoose-in-node-js –
Modyfikowanie zapytania w celu uwzględnienia limitu w następujący sposób nie wpływa na wydajność jakikolwiek oczywisty sposób. Activity.find ({}, {limit: 1000}) .run (funkcja (err, activities) { –
Jak duże są twoje dokumenty? Czy możesz opublikować db.coll.stats(). –