在mongodb中划分大数据集

时间:2017-02-03 03:48:27

标签: node.js mongodb csv

我需要将mongodb的大数据集转换为CSV。为此,我决定使用async.queue 并发级别=核心。示例代码看起来像

var q = async.queue(function (task, cb) {
collection.find(query).skip(task.skip).limit(task.limit)
    .toArray(function (err, docs) {
            // convert that data to CSV and push them in a Array
    })
}, cores);

var offset = 0;
var limit = count / cores;
for (; cores >= 0; cores--) {
    q.push({skip: offset, limit: limit});
    offset += limit
}
// return the result after everything is done
q.drain = function () {
    callback(inMemoryCsv.join())
};

但是mongo docs说mongodb跳过非常昂贵。那么在这种情况下我能做些什么呢?

这是一个Rest端点,用户正在请求下载CSV。基本上一切都是实时的。

我是以正确的方式做到这一点......?任何替代方法..?

0 个答案:

没有答案