开发者社区> 问答> 正文

mongodb如何设计已读内容不显示?

我有一个类似于微博的表, 功能是想让用户看过这条微博就不再显示了.
weibo: {type:String, default:null}
read: {type:objid,default: null}
然后循环对比吗? 实在想不通了 求救.
A 是消息表, B 是已读, C 是用户表.
A 表查询的时候 类似于 A._id != (B.read = true and C.uid = 1).readid

展开
收起
落地花开啦 2016-02-01 18:34:06 2230 0
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)
    `

    2019-07-17 18:37:18
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
开源数据库 MongoDB 专场 MongoDB疑难杂症分析及优化 立即下载
阿里云MongoDB云服务构建 立即下载
饿了么高级架构师陈东明:MongoDB是如何逐步提高可靠性的 立即下载