获取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"); });