所以我有一个页面对象的层次结构,我正在从Postgres系统迁移到MongoDB,但我仍然需要支持一些遗留的客户端系统,这些系统期望数据采用扁平的RDBMS格式。
如果我将它存储在Mongo中,我有类似的东西:
{
"id": "1",
"title": "Top Page",
"children":
[
{
"id": "2",
"title": "Page Two",
"children":
[
{
"id": "3",
"title": "Page Three",
"children": []
}
]
}
{
"id": "4",
"title": "Page Four",
"children": []
}
]
}
但我需要重新格式化,因此客户端应用程序可以读取它。他们期望以这样的格式:
[
{
"id": "1",
"title": "Top Page",
"parentid": "top"
}
{
"id": "2",
"title": "Page Two",
"parentid": "1"
}
{
"id": "3",
"title": "Page Three",
"parentid": "2"
}
{
"id": "4",
"title": "Page Four",
"parentid": "1"
}
]
使用Java或MongoDB驱动程序有一种简单的方法吗?或者我只需要通过每个对象进行迭代并手动设置parentids? (其中一些层次结构相当大)。
答案 0 :(得分:1)
有1000种方法可以展平层次结构,因此我怀疑是否有现成的API可以做到这一点。手动完成。毕竟,这是一种简单的递归方法。