0

我正在开发某种社交网络,人们可以在其中发布有关某个主题的帖子并喜欢它们。

我无法跟踪用户的喜好。

架构如下:

用户:{ userId:“someId”,喜欢:[“idPost1”,“idPost4”,...] }

帖子:{ postId:“someId”,主题:“idTopic”,postContent:“someContent”}

我需要一个可以:

  1. 从某个主题获取所有帖子,如下所示:

    r.table('posts').filter({ topic: idTopic }).run().then(posts => res.json(posts))

  2. 查看当前用户(由用户 ID 给出)是否喜欢该特定主题的任何帖子。然后返回一个 JSON,其中包含关于该主题的所有帖子,以及用户喜欢的那些“liked: true”。

我在第 2 步遇到问题,

请让我知道我是否以错误的方式对数据进行建模,或者您是否能想到我可以完成第 2 步的任何方法。

谢谢!

4

1 回答 1

0

这个函数做你在 javascript 中寻找的东西。(使用数据资源管理器测试)

r.db("test").table('posts').filter({ topic: "idTopic" }).merge(function(post){ 
    return {liked: r.table('users').filter({userId: "someId"})(0)('likes').contains(post("postId")) }; })

合并功能基本上会迭代每个帖子并添加喜欢的字段。contains 函数检查帖子 id 是否在 likes 数组中,并直接作为真值返回。

于 2016-12-16T21:36:24.323 回答