将具有特定ObjectId()的对象插入MongoDB的更好方法

时间:2015-10-06 09:48:21

标签: ruby json mongodb bson

我在test.json文件中有一个来自mongodb的bson对象的json表示。

在json:

{
    "_id" : { "$oid" : "560d34ce0699616af8b86842" },
    "siteId" : "Development",
    "description" : "Development Site",
    "lastModified" : { "$date" : "2015-10-01T15:27:42.884+0200" }
}

或者我可以根据需要序列化bson:

{
    "_id" : ObjectId("560272fc0699610da8703eea"),
    "siteId" : "Develop",
    "description" : "Develop Site",
    "lastModified" : ISODate("2015-09-23T09:38:04.697Z")
}

使用mongo ruby​​驱动程序将此对象与此特定ObjectId一起插回mongoDB的最佳方法是什么?

现在我必须加载它,并将_id更新为BSON :: ObjectId:

client = Mongo::Client.new([ '192.168.56.52:27017' ])

sites = client[:sites]
sites.drop
sites.create
file = File.read('test.json')
y = JSON.parse(file)
y["_id"] = BSON::ObjectId.from_string(y['_id']['$oid'])
sites.insert_one(y)

在ruby mongo驱动程序中有更好的方法吗?由于对象的表示由mongo完成,我期待一些BSON :: Object.from_string()

0 个答案:

没有答案