【发布时间】:2014-06-05 08:45:35
【问题描述】:
有很多关于如何将 GORM 对象持久化到 MongoDB 的教程,例如http://blog.mongodb.org/post/18510469058/grails-in-the-land-of-mongodb。就我而言,我从一台服务器到另一台服务器的请求中获取 HTTP 响应。我不知道 JSON 响应的确切形状,但对大部分结构有很好的了解。
假设我正在获取医生列表,我知道医生的结构。每个医生都有一份病人名单,但我不知道每个病人的确切结构。
一位患者可能是:
patient : {
name: "tony",
lastIllness: "flu"
}
而另一个可能是:
patient : {
name: "peter",
phoneNumber: "08678762"
}
我的目标是将 JSON 响应与我从 HTTP 请求获取到 MongoDB 时的状态完全相同,并使其用户友好,这意味着能够为不同的患者/医生运行不同的查询。
我能做到:
class Doctor {
List<Patient> patients
static embedded = ['patients']
}
class Patient {
// holds dynamic attributes
}
我可以手动解析 JSON 并通过执行以下操作动态创建各种 Patient 属性:
patient[$attributeName]=attributeValue
这会起作用,但我可以看到解析变得越来越复杂和错误。请记住,我希望从 HTTP 请求返回的 JSON 被逐字保留,并且我希望这个 JSON 可用于查询。
有没有更好的办法?
【问题讨论】:
标签: mongodb grails grails-orm grails-plugin