获取mongodb集合中的最大元素抛出exception

我在下面的代码中遇到了麻烦。 我试图在“链接”集合中获得最大(seq)。 运行下面的代码后,我得到“ 致命错误:JS分配失败 – 进程内存不足”错误。 我如何克服这个问题? 谢谢您的回复。

db.collection('links', function(err, collection) { var options = { "limit": 1, "sort": [['seq','desc']]}; collection.find({}, options , function(err, docs) { console.log("Returned #" + docs.seq + " documents"); }); }); 

注意:顺便说一下,运行后节点的内存使用量已经增加了很多。

seq上添加一个索引到你的集合,这样Mongo就不必把整个集合加载到内存中去分类。

另外,使用findOne而不是find作为当前代码中的docs参数实际上是一个游标对象,而不是具有max seq的文档。 如:

 var options = { "sort": [['seq','desc']] }; collection.findOne({}, options , function(err, doc) { console.log("Returned #" + doc.seq + " documents"); });