如何在rethinkdb中实现2个表之间的多对多关系?

时间:2014-05-31 12:08:08

标签: rethinkdb

所以这在webapps中非常基础,但我无法在rethinkdb中找出解决方案,因为它是我第一次使用DB。 一个帖子有很多标签,一个标签下有很多帖子。我希望能够在点击标签时检索所有帖子,当我点击帖子时我会点击所有标签。

如何使用rethinkdb实现此目的,并且2是我应该用于此任务的理想表数?

P.S。 :如果来自rethinkdb团队的任何人都看到了这一点,我建议在你的api中加入更多的例子,特别是DC或Marvel宇宙以外的其他东西,一般观众都可以参与其中。 很多人可能会首次使用rethinkdb来探索数据库,只是看api或turorial可能不足以完成“非平凡”任务。

由于

1 个答案:

答案 0 :(得分:2)

你基本上可以像在SQL中那样做,看看“多对多关系”部分:http://www.rethinkdb.com/docs/table-joins/

您可能也对“数据建模”文章感兴趣:http://www.rethinkdb.com/docs/data-modeling/

如果要检索带有嵌套标记数组的完整文档,还可以执行类似

的操作
r.table("posts").map(function(post) {
    return post.merge({
        tags: r.table("postsTagsLinks").getAll(post("id"), {index: "postId"}).map(function(link) {
            return r.table("tags").get(link("tagId"))
        }).coerceTo("ARRAY")
    })
})