是否有可能使用某种脚本更新
mongodb中的数据?
我不想(不能)访问mongo shell – 但是想执行mongoshell更新查询.
我的数据是一个csv文件.我使用hadoop来分析数据(提取和转换).我需要将数据恢复到mongodb并更新一些属性.作为更新的参考,我想使用生成的id
我不想(不能)访问mongo shell – 但是想执行mongoshell更新查询.
我的数据是一个csv文件.我使用hadoop来分析数据(提取和转换).我需要将数据恢复到mongodb并更新一些属性.作为更新的参考,我想使用生成的id
这项任务可以完成吗?
任何帮助将非常感激
解决方法
您想从CSV文件中读取数据并导入mongodb吗?您可以生成脚本文件(
javascript)并使用mongo shell执行它,如“
scripting the shell”中所述.
示例会话,测试数据库,以空的foo集合开头:
> db.foo.insert({name : "james",position : "forward"}) > db.foo.find() { "_id" : ObjectId("4f0c99f6cb435f1e7d7fedea"),"name" : "james","position" : "forward" } >
然后你生成你的脚本让我们说mongo_scripting.js:
db.foo.insert({name : "wade",position : "guard"}); db.foo.update({name : "james"},{$set : {position : "power forward"}},false,true);
并运行脚本:
mongo localhost:27017/test mongo_scripting.js
回到mongo:
> db.foo.find() { "_id" : ObjectId("4f0c99f6cb435f1e7d7fedea"),"position" : "power forward" } { "_id" : ObjectId("4f0c9a64a4a4642bae6459ea"),"name" : "wade","position" : "guard" } >
另一种方法是使用java / python …驱动程序加载数据.