搜尋

首頁  >  問答  >  主體

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

为情所困为情所困2887 天前775

全部回覆(2)我來回復

  • ringa_lee

    ringa_lee2017-04-28 09:06:43

    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)
    
    

    回覆
    0
  • 黄舟

    黄舟2017-04-28 09:06:43

    顯示時只查詢read為false的就行了啊

    回覆
    0
  • 取消回覆