gpt4 book ai didi

node.js - 如何检索MongoDB中的大量对象?

转载 作者:太空宇宙 更新时间:2023-11-04 02:08:10 25 4
gpt4 key购买 nike

我需要做什么:

我需要根据日期范围将大量(未确定大小)的数据从 MongoDB 导出到 CSV。 (最少是一天,没有最多)

每天的数据量都不同。

我的问题:

我考虑过使用 mongoexport 但我需要添加数据库中不存在的列。

我的 MongoDB 对象单独来说并不大,它们仅由文本组成,但我在数据库中有很多它们并且需要检索其中很多。因此,当我通过 NodeJS 使用 Mongo 来查询我的对象时,我有:

JavaScript heap out of memory

我正在寻找一个长期解决方案,这样我就不必担心要检索多少天的数据。

有什么解决办法吗?

谢谢,

最佳答案

你可以使用cursor.streamcsv-write-stream创建这样的东西:

var MongoClient = require('mongodb').MongoClient;
var csvWriter = require('csv-write-stream');
var fs = require('fs');

MongoClient.connect('mongodb://localhost:27017/test', function (err, db) {
var collection = db.collection('big_collection');
var stream = collection.find().stream();
var writer = csvWriter();
writer.pipe(fs.createWriteStream('out.csv'));
stream.on('end', function () {
writer.destroy();
db.close();
});
stream.on('data', function (data) {
Object.assign(data, {'some_extra_column' : ''});
});
stream.pipe(writer);
});

关于node.js - 如何检索MongoDB中的大量对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43406627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com