有没有办法可以将数据哈希(甚至更好的XML文档)直接映射到mongo文档。所以这个哈希:
@hash = {
"doc_id" => 3928,
"header" =>[
{"merchantId"=>["35701"],
"merchantName" =>["Lingerie.com"],
"createdOn" =>["2011-09-23/00:33:35"]}
],
"trailer" =>[
{"numberOfProducts"=>["0"]}
]
}
会变成:
> db.doc.first()
{
_id : ObjectId("4e77bb3b8a3e000000004f7a"),
doc_id : 3928
header : [{
merchantId : "35701",
merchantName : Lingerie.com
}],
trailer : [{
numberOfProducts : 0
}]
}
答案 0 :(得分:0)
您可以使用to_json将哈希值转换为json:
require 'json'
@hash.to_json
获取(使用格式化):
{
"doc_id":3928,
"header":[{
"merchantId":["35701"],
"merchantName":["Lingerie.com"],
"createdOn":["2011-09-23/00:33:35"]
}],
"trailer":[{
"numberOfProducts":["0"]
}]
}
它应该只是从那里到bson和mongo的一小段距离。
编辑:
好的,我刚刚在这里阅读了教程: http://api.mongodb.org/ruby/current/file.TUTORIAL.html
看起来你可以把哈希放在那里,mongodb驱动程序会处理它。也许我不明白这个问题?
答案 1 :(得分:0)
目前还不清楚你要做什么,所以我假设你要将XML数据导入mongo。
我一直在将XML文件导入mongo。首先,我将xml文件转换为json对象using this command line tool I wrote, xml-to-json。然后,我使用mongoimport将数据导入mongo。
查看xml-to-json的documentation,包括一些示例input vs. output。