让我们说我的chatsDB充满了这些数据:
{_id: "39e92f36-5d0f-44b7-8948-89be9b85bd08", fromPerson: "John Smith", toPerson: "Bob Smith", message: "Hey Buddy"}
{_id: "39e92f36-5d0f-44b7-8948-89be9b85bd08", fromPerson: "John Smith", toPerson: "Joe Smith", message: "Hi how you doing"}
{_id: "39e92f36-5d0f-44b7-8948-89be9b85bd08", fromPerson: "Tom Smith", toPerson: "Bob Smith", message: "Hello Again!"}
{_id: "39e92f36-5d0f-44b7-8948-89be9b85bd08", fromPerson: "Bob Smith", toPerson: "John Smith", message: "Hello Again!"}
我想通过查询这个mongoDB返回一组独特的结果。我该怎么做?
例如在SQL + php中:
Select fromPerson Distinct from chatsDB;
我现在的想法是为模板添加一个来自和来自人的列表,以获得用户与之交谈过的人的“chatUserList”。
答案 0 :(得分:6)
MongoDB有一个distinct()命令,它完全符合你在这种情况下所做的那样。
为所有聊天找到不同发件人的示例:
> db.chatsDB.distinct('fromPerson');
[ "John Smith", "Tom Smith", "Bob Smith" ]
使用查询过滤器查找向“John Smith”发送邮件的唯一人的示例:
> db.chatsDB.distinct('fromPerson', { toPerson: 'John Smith'});
[ "Bob Smith" ]
如果这将是您的应用程序的常见查询类型,则应添加适当的索引...例如,在fromPerson
或(fromPerson, toPerson)
上。
答案 1 :(得分:-1)
查看this page处的mongodb文档。它描述了如何创建不同的查询。