mongodb 怎么设计已读内容不显示呢?

浏览:42日期:2023-07-01

问题描述

我有一个类似于微博的表, 功能是想让用户看过这条微博就不再显示了.

weibo: {type:String, default:null}

read: {type:objid,default: null}

然后循环对比吗? 实在想不通了 求救.

A 是消息表, B 是已读, C 是用户表.

A 表查询的时候 类似于 A._id != (B.read = true and C.uid = 1).readid

问题解答

回答1:topic 表

{ '_id': ObjectId(12345) , 'title': 'shajiquan.com'}user 表

{ '_id': ObjectId(112233445), 'username': 'shajiquan.com'}read 表

{ 'user_id': ObjectId(12345), 'topic_id': ObjectId(67890)}

# 某用户 阅读过的has_read = db.read.find({’user_id’:USER_ID},{’topic_id’:1})has_read = [i.get(’topic_id’) for i in list(has_reads)]# 某用户 没有阅读过的topics = db.topics.find({’topic_id’:{’$nin’:has_read}})topics = list(topics)回答2:

显示时只查询read为false的就行了啊

相关文章: