更新并插入mongodb导入
问题描述:
以下命令正确导入csv文件中的数据。但问题是,有相同数量的2个条目。 我需要在同一个文档中的417176718的条目(所以没有$集)。如何使用mongo导入保持这两个值?更新并插入mongodb导入
cat final.txt
number, date, duration, type, destination
417176718 , 2013-01-23 20:09:00 , 1 , NORMAL_CLEARING , 61998487
409334392 , 2013-01-24 11:25:18 , 40 , NO_ANSWER , 09821973636
919480909 , 2013-01-25 20:58:00 , 40 , NORMAL_CLEARING , 09919480909
417176718 , 2013-01-24 20:09:00 , 1 , FAILED , 61998487
mongoimport -d mydb -c vcalls --type csv --file final.txt --headerline
答
这正是地图缩小的目的。
一旦你得到了这个在分贝,运行图减少这样的:
mapper= function(){emit(this.number, {'data':[{'date':this.date, 'duration':this.duration, 'type':this.type, 'destination':this.destination}]});}
reducer = function(k,v){
data=[];
for (i=0;i<v.length;i++){
for (j=0;j<v[i].data.length;j++){
data.push(v[i].data[j]);
}
}
return {'data':data}
}
db.vcalls.mapReduce(mapper, reducer, 'reducedcalls')
这应该给你的数据每数一个记录与包含呼叫列表。
我想你将不得不编写自己的脚本来做到这一点。 MongoImport不会为你做。 – 2014-09-29 10:31:46