我是mongoDB的新手,希望有人能提示我如何完成这个任务。
我有一个opendata:
http://data.taipei/opendata/datalist/apiAccess?scope=resourceAquire&rid=9ba187c9-b07e-40bc-9aa5-8d3c9f1aad63
Q1:由于某些原因,这个Opendata不包含数据的时间框架,所以在我将json文件保存并导入到mongodb之前,我想将当前的时间框架添加到其中,这样做最有效的方法是什么?
Q2: opendata将每5分钟更新一次,我希望每5分钟将它同步到mongodb。(合并但不要覆盖,记录相同时不要合并)。我的想法是使用crontab每5分钟执行一个脚本,但我不确定这些脚本是否应该使用mongoImport,因为mongoImport似乎会覆盖整个DB文件,而不是覆盖。那么有什么建议去做这个任务吗?
PS:最后,我可能使用R来分析数据,但这是另一个故事,我需要做的第一个任务是定期导入数据。希望有人能给我指路。
谢谢你的帮忙!
向詹姆斯问好
发布于 2015-08-25 12:47:49
我不知道确切的数据是什么,但我的建议是解析json文件,然后更新或创建现有字段,并添加"updated_at“字段。下面是伪代码:
for each elem in json["results"] do
existing = Data.where(:id=>elem["id"]).first # find if there is already a field for this id
if existing==null then # if no create it
existing = Data.new(:id=>elem["id"])
end
existing.update(elem) # update all json data, depending of your language
existing.updated_at=Time.now
existing.save
endmongoImport只用于将数据导出/导入到备份/还原数据库或其他一些非常具体的用例,而不是在正常的操作过程中。
https://stackoverflow.com/questions/32204200
复制相似问题