对MongoDB的重复NodeJS请求最终减速

我有数据进入mongodb集合rmc ,它被插入,即我有一个最新的纬度和经度为我的设备点。

从Node.js我想每隔100 ms查询该集合(模拟实时),并更新与更新的经度/纬度的地图。

一开始我的performance很好,但是在更新了我的collections或者一段时间之后,性能开始变得非常糟糕。

我究竟做错了什么? 我能以更好的方式做事吗? 我似乎无法弄清楚,如果MongoDBNode ,或Mongoose

用户转到index.html ,它获取一个HTML页面。 在HTML中,我每100 ms请求一个页面:

 function updateData() { $.getJSON("/data", function(json) { dosomething() interval = setTimeout(updateData, 100); }) }; updateData(); 

和我的index.js:

 /* GET home page. */ router.get('/', function(req, res, next) { res.render('index', { title: "test" }); }); router.get('/data', function(req, res, next) { var db = req.db; Json.find({}).select({}).lean().exec(function(e,docs){ res.json(docs); }); }); 

事情很好,突然之间,经历了巨大的延迟:

 GET /data 304 1.644 ms - - GET /data 304 1.738 ms - - GET /data 304 1.685 ms - - GET /data 304 1.693 ms - - GET /data 304 1.624 ms - - GET /data 304 1.645 ms - - GET /data 304 1.873 ms - - GET /data 304 1.607 ms - - GET /data 304 1.638 ms - - GET /data 304 1.610 ms - - GET /data 304 1.734 ms - - GET /data 304 1.736 ms - - GET /data 304 1.660 ms - - GET /data 304 1.634 ms - - GET /data 304 15.265 ms - - GET /data 304 10.535 ms - - GET /data 304 1.740 ms - - GET /data 304 70.184 ms - - GET /data 304 69.037 ms - - GET /data 304 58.620 ms - - GET /data 304 75.053 ms - - GET /data 304 72.292 ms - - GET /data 304 92.447 ms - - GET /data 304 95.270 ms - - GET /data 304 448.057 ms - - GET /data 304 567.309 ms - - GET /data 304 683.199 ms - - GET /data 304 731.952 ms - - GET /data 304 1102.502 ms - - GET /data 304 1770.029 ms - - GET /data 304 1051.307 ms - - GET /data 304 1059.791 ms - -