我有一个包含.json文件的文件夹。每个文件都是这样的:
{"data":
[{"status":0,
"timestamp":...
},
{"status":0,
"timestamp":...
},{...
}],
"otherinfos":"random"
}
我需要做的是在集合中导入数据数组的内容。 文件大约是10Mo,文件夹包含数千个文件...... 我尝试了“mongoimport”命令,但它插入了整个对象,而不是“data”数组中可用的所需元素列表。 有没有办法从mongo中的json文件导入数组? 是否有从文件夹导入多个文件的开箱即用解决方案?
谢谢,
安托
PS:我做了一个小的java软件来读取每个文件,并从mongo的数组中导入对象列表,但经过数周的计算后,我很想听到更好的解决方案。编辑: 我想将我的mongoDB数据存储起来,每个状态和时间戳都作为一个单独的文档:
{
"status":0,
"timestamp":...
},
{
"status":0,
"timestamp":...
},
{...
}
所以我可以在时间戳上请求获取状态,例如。我有十亿个这样的条目。
答案 0 :(得分:1)
你可以把它作为一个两阶段的过程来做:
聚合命令可能如下所示:
db.tempcollection.aggregate([
{ $unwind: "$data" },
{ $project: {
_id: 0,
"status" : "$data.status",
"timestamp" : "$data.timestamp"
}
},
{ $out: "newcollection" }
]);
这可能会很快得到处理,因为它可以由MongoDB本身在数据库服务器上完成;但是,对于小数据样本进行一些性能测试可能值得一试。