我有一個用戶和消息之間的連接表,我將得到所有的messageUserConnection - 發送者的對象(userCreatedMessage和userReceivedMessage是相同的),並且消息ID是相同的並且讀取是false
任何messageUserConnection或者說出來簡單:發送者/用戶將得到所有的消息用戶連接,並非所有的接收者都已確認消息。MongoDB查找結果
查詢 - 字符串MessageUserConnection:
db.MessageUserConnection.find()
MessageUserConnection
條目發件人
MessageUserConnection
一個其中消息的接收器還沒有證實消息(郵件ID是相同的,並且讀出= FALSE)
{
"confirmationNeeded": true,
"read": false,
"userCreatedMessage": DBRef("User",
ObjectId("5589929b887dc1fdb501cdba")),
"userReceivedMessage": DBRef("User",
ObjectId("5589929b887dc1fdb501cdba")),
"message": DBRef("Message",
ObjectId("563c57adb1a9bb55d70bd407"))
}
這是我的查詢:
db.MessageUserConnection.find({ $and: [ {'confirmationNeeded': true}, { $and: [ {'userCreatedMessage.$id' : ObjectId('5589929b887dc1fdb501cdba') }, {'userReceivedMessage.$id' : ObjectId('5689929b887dc1fdb501cdbc') } ] } ] })
我現在的問題是,我不知道如何擴大查詢,以便考慮接收器的讀取屬性。
這將是巨大的,如果有人可以給我一個提示我怎麼能做到這一點。 非常感謝!
這裏我的問題的圖形可視化。我將是 - 在這種情況下 - 只與ID MessageUserConnection = 1,因爲一個用戶(具有ID = 3),其已接收到該消息沒有讀該消息。 有沒有可能通過一個MongoDB查詢來做到這一點? 非常感謝!
所以,你想在'$和'一個以上的條件.. MI吧?? – Moumit
是的,但我不知道如何與$和發送者的messageId,比如何檢查** **讀設置爲false,其中消息ID就像是發送者messageuserconnection相同的查詢。謝謝! – quma