用户登录

前面我们用 RELATE 在用户与内容之间建立了一种图形关系,描述了一下用户点赞了某个内容。下面可以利用一下这个图形关系。

SELECT * FROM user; 得到的是一组用户列表,现在我想在结果里包含用户赞过的内容,在 SELECT 后面,用一下图形关系,->like->post。因为现在查询的是 user,所以第一个箭头左边的东西应该就是当前这个 user。用 AS 起个名字叫 likedPosts。

在查询的结果里面,会有一个 likedPosts,它是一个数组,里面的东西就是当前这个用户赞过的内容的 id。

如果希望包含具体的点赞内容数据,可以在查询里 FETCH 一下 likedPosts,如果需要内容的 user 具体数据,再 FETCH 的字段里面,再添加一个 likedPosts.user 。

内容点赞数量

写一条获取内容列表的查询,在结果里包含内容项目被赞的次数。SELECT * FROM post,在 SELECT 后面 count 一下内容的点赞情况。给这个字段起个名字叫 totalLikes。在 count 函数里,描述一下需要的关系,因为现在选择的是 post 内容,所以箭头方向要朝左,然后是 like,再用一个朝左的箭头,然后是 user。

得到结果里面会有一个 totalLikes ,字段的值就是内容被赞的次数。

用户点赞的内容列表

下面再写一条查询可以获取到某个用户赞过的内容。 SELECT * FROM post; 在这段 sql 里用 WHERE 设置一个条件。一个左箭头,然后是 like ,再用一个左箭头,一组括号,里面是 user,再用 WHERE 设置一个条件,条件是用户的 id 等于一个特定的 id,比如 user:libai。

现在得到的响应数据就是李白这个用户赞过的内容列表。

使用图形关系(用户点赞内容)《 SurrealDB 多模型数据库:数据关系 》

统计

13911
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点