有没有一种将哈希或XML文件映射到Mongo文档的自然方法?

时间:2011-09-23 16:57:26

标签: ruby xml mongodb

有没有办法可以将数据哈希(甚至更好的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 
  }]
}

2 个答案:

答案 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