如何使用 synapse postgres 数据库获取用户当前加入的矩阵房间总数?(不包括用户已离开或被踢出或被禁止进入的房间)
1 回答
0
我花了几个小时寻找这个,所以我想也许它可以帮助别人。
您可以通过查询表获取用户当前加入的房间数user_stats_current
:
SELECT joined_rooms FROM user_stats_current WHERE user_id='@myuser:matrix.example.com';
如果您想具体获取用户当前加入的房间的 ID,您可以使用current_state_events
如下查询中的表:
SELECT room_id FROM current_state_events
WHERE state_key = '@myuser:matrix.example.com'
AND type = 'm.room.member'
AND membership = 'join';
更进一步,如果您不仅想要房间 ID,还想要房间名称,您可以room_stats_state
像在其他查询中一样添加表:
SELECT e.room_id, r.name
FROM current_state_events e
JOIN room_stats_state r USING (room_id)
WHERE e.state_key = '@myuser:matrix.example.com'
AND e.type = 'm.room.member'
AND e.membership = 'join';
于 2020-07-17T20:48:32.900 回答