MongoDBsorting高容量数据

使用telemName ,如果我重命名我的telemName表并获取新的数据,这个代码工作得很好。 总是有。 不过,我现在的collections已经违反了总结果:1649272

 db.collection(telemName).find(options).sort({ "d" : 1 }).toArray(function (err, telemetryData) { console.log(telemetryData.length, "data points to insert"); var newlastInsert = telemetryData[telemetryData.length - 1].d; callback(null, db, telemetryData, newlastInsert) }); 

为什么我的sorting失败,ergo产生这个错误:

TypeError:无法读取未定义的属性“长度”

显然这意味着没有数据被返回,我可以保证100%,我正在sorting的字段是{ "d" : 1 }并一直工作到现在没有任何变化。

大型数据集超过一百万左右只是打破了Mongosorting? 如果我运行应用程序新鲜,它工作正常。 表增长,程序运行。

作为参考,这里是直接从我的数据库中的示例数据集:

在这里输入图像描述

据此:

当无法从索引获取sorting顺序时,MongoDB会将结果sorting在内存中,这要求sorting的结果集小于32兆字节。

继续为你的sorting创build一个索引(例子):

 db.records.createIndex( { a: 1 } ) 

或者添加一个限制()