在mongoDB中查找未在其他文档中出现的电子邮件

时间:2019-04-30 15:59:49

标签: mongodb

所以我在集合中有一堆文件,看起来像这样: Image of document

如果我有一个以test@gmail.com登录的用户,我希望他们能够看到他们不在chat文档中的每个用户。

例如。如果我有另一个如下文件: Image of second document

我希望test@gmail.com在屏幕上与user2@gmail.com聊天,但不希望与john@gmail.com聊天,因为他们还没有聊天。

我需要的是在所有满足john@gmail.com条件的用户中填充一个下拉框

mongoDB查询将如何获得像john@gmail.com这样的每个用户

随时要求澄清!

1 个答案:

答案 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在一个特定字段上检查不相等,在数组的情况下不起作用。