开发者社区> 问答> 正文

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

展开
收起
蛮大人123 2016-06-14 16:42:35 2405 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 19:38:08
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Data as a Service - 数据即服务 -- MongoDB⾼级应⽤模式 立即下载
开源数据库 MongoDB 专场 MongoDB疑难杂症分析及优化 立即下载
饿了么高级架构师陈东明:MongoDB是如何逐步提高可靠性的 立即下载