我有一个用户和消息之间的连接表,我将得到所有的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