我有一个名为“update”的json,它有一个嵌入式列表“comments”,如下所示:
{
id: "update/0",
//comments contains elements with type:comment
comments: [{
id:"comment/0"
content:"old first level comment content..."
children:[{
id:"comment/00",
content:""old second level comment content...",
children[...]
}
]
}]
}
问题是:
1, How to replace "old first level comment content..." with "new first level
comment content..." by ids "update/0" and "comment/0"?
2, How to replace "old second level comment content..." with "new second level
comment content..." by ids "update/0","comment/0" and "comment/00"?
答案 0 :(得分:0)
首先是您要查找的查询:
r.table("update").get("update/0").update(function(doc) {
return doc.merge({
comments: doc("comments").map(function(comment) {
return r.branch(
comment("id").eq("comment/0"),
comment.merge({
content: "new first level comment content..."
}),
comment
)
})
})
}).run(...)
第二个:
r.table("update").get("update/0").update(function(doc) {
return doc.merge({
comments: doc("comments").map(function(comment) {
return r.branch(
comment("id").eq("comment/0"),
comment.merge({
children: comment("children").map(function(child) {
return r.branch(
child("id").eq("comment/00"),
child.merge({
content: "new second level comment content..."
}),
child
)
})
}),
comment
)
})
})
}).run(...)
您可能希望在多个表中拆分数据以进行连接。 在您的情况下,表“更新”和表“评论”。 您的表评论可以为孩子们加入。
您可以在此处找到更多信息:
如果您有更多问题,请与我们联系。