我想获取 MongoDB 中特定键的集合中的所有唯一值。我可以遍历整个集合来获取它们:
values = []
for item in collection.find():
if item['key'] in values:
pass
else:
values.append(item)
但这看起来效率极低,因为我必须检查每个条目,并且每次都循环遍历列表(随着值的数量变多,速度会变慢)。或者,我可以将所有值放在一个列表中,然后制作一个集合(我认为这更快,尽管我还没有尝试弄清楚如何测试速度):
values = []
for item in collection.find():
values.append(item['key'])
unique_values = set(values)
或者使用列表理解:
unique_values = set([item['key'] for item in collection.find()])
但我想知道是否有一个不需要遍历整个集合的内置函数(比如这些值是否存储在哈希表或其他东西中),或者是否有更好的方法来实现这一点。
最佳答案
distinct()
方法做到这一点。它返回给定键的不同值的数组(列表):
unqiue_values = collection.distinct("key")
关于python - 有没有一种快速/最佳的方法来获取特定键的唯一值列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31747198/