我正在使用Node.js和Mongoose从mongodb(版本3.2)中查询数据:
let cursor = cbo.find({
InsertTime: {
$gte: data.ValidTimeStart,
$lte: data.ValidTimeEnd
}
}).lean().cursor({batchSize:1000});
cursor.on('data', (chunk) => console.log(chunk));
cursor.on('end', () => console.log("end"));
结果是正确的,但是内存将继续增加,直到返回所有结果,并在一段时间后释放大量内存。通常,我大约有100万个项目,它需要近500 MB的内存。
是否有可能使用返回流的游标,以便在每次发送数据后释放一些内存。
如何有效使用内存?