我有一个用户和消息之间的连接表,我将获得所有messageUserConnection - 发送者的对象(userCreatedMessage和userReceivedMessage是相同的),其中消息ID是相同的,并且读取false
任何messageUserConnection或说很简单:发送者/用户将获得所有发送的messageUserConnections,而不是所有接收者都已确认该消息。
MessageUserConnection的查询字符串:
db.MessageUserConnection.find()
发件人的 MessageUserConnection
条目
a MessageUserConnection
,其中消息的接收者尚未确认消息(messageId相同且读取= 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 = 1的MessageUserConnection,因为一个收到此消息的用户(id = 3)没有读取该消息。 是否有可能使用一个MongoDB查询执行此操作? 非常感谢!
答案 0 :(得分:0)
.twitter-fav
我认为你可以通过上提查询来做到这一点..如果我得到你的问题..不知道:(