我需要上传大量的数据到mongodb。
不是文件,而是大量的键值对。
示例:
let payload = [];
for ( let i =0 ;i<1000000;i++){
payload.push({
"first name": "juan",
"hair color": ""+i,
"gender" :"male"
})
}
var body = {
"channelId":"63dd281360e269e2a9399939",
"recordCount":payload.length,
"minBidUSD": 5,
"payload": payload
}
上面的脚本创建了一个巨大的有效负载。2这个有效负载然后被放在POST请求的主体中。
我需要能够在有效载荷中存储大量数据。
功能背景:我在一个网站上工作,人们可以出售数据线索.例如:我正在寻找男性在佛罗里达州是30岁。可能的数据结构为铅有效载荷将是:
{gender:"male",state:"florida",age:30}
这是有如下问题:
[1]是否有更好的方法来存储这些数据?--注:这个负载的属性改变了,所以我不能创建一个模型来对抗它。
[2]如果存储这些数据的最佳方法是使用gridfs-file-storage,我该怎么做呢?
关于该问题的其他说明:
下面是保存有效负载的集合的模型
const mongoose = require("mongoose");
const channelDataSchema = mongoose.Schema({
channelId: { type: String, required: true },
payload: { type: [Object], required:true },
});
module.exports = mongoose.model("ChannelData", channelDataSchema);
1条答案
按热度按时间yhqotfr81#
Gridfs是用于二进制数据的,并且被分块以避免16 mb的MongoDB文档大小限制。我不推荐gridfs用于基本数据。
为了快速获取数据,我建议使用批量写入。下面是一个mongoshell示例。这个示例将循环创建一组使用
random()
函数组成的假数据元素。它仅用于说明。如果您需要从源(如文件)或另一个数据库系统插入数据,则可以使用自定义编程语言(如Node)使用批量写入。并使用MongoDB支持的数据库驱动程序-其中包括批量写入特性。MongoShell示例: