如果我有一个以test@gmail.com
登录的用户,我希望他们能够看到他们不在chat
文档中的每个用户。
我希望test@gmail.com
在屏幕上与user2@gmail.com
聊天,但不希望与john@gmail.com
聊天,因为他们还没有聊天。
我需要的是在所有满足john@gmail.com
条件的用户中填充一个下拉框
mongoDB查询将如何获得像john@gmail.com
这样的每个用户
随时要求澄清!
答案 0 :(得分:0)
此处的查询是查找“我”为参与者的所有聊天记录?如果是这样:
ChatCollection.find({ "participants.userEmail": "test@gmail.com" })
将返回我参与的所有聊天。然后,您可以使用所选语言的常用数组方法查找所有其他参与者的姓名。
注意:我建议在“ participants.userEmail”字段中提供索引。
要查找所有不包含“ me”的文档(避免重复),请使用$ not: https://docs.mongodb.com/manual/reference/operator/query/not/
例如
ChatCollection.find({ "participants.userEmail": { $not: "test@gmail.com" } });
这将执行逻辑“非”,返回所有不匹配的文档。这与$ ne的重要区别在于,$ ne在一个特定字段上检查不相等,在数组的情况下不起作用。