遍历 PyMongo 集合
Posted
技术标签:
【中文标题】遍历 PyMongo 集合【英文标题】:Iterate through a PyMongo collection 【发布时间】:2018-02-19 05:13:03 【问题描述】:我需要遍历我的集合并从具有相同名称的键中获取所有值。
[
"_id":
"$oid": "59b3824b44e96c07dceba8de"
,
"place": "Yellow Stone",
"time": "2017-09-08",
"user": "user@gmail.com",
"user_go": "yes"
,
"_id":
"$oid": "59b4ea8644e96c37c43be33a"
,
"place": "Yosemite",
"time": "2017-11-10",
"user": "user@gmail.com",
"user_go": "yes"
,
"_id":
"$oid": "59b4ea9144e96c37c43be344"
,
"place": "Devils Tower",
"time": "2017-09-10",
"user": "user@gmail.com",
"user_go": "yes"
,
]
我想知道如何根据用户名从集合中获取所有地名。我试过做类似的事情:
data = db.voting.find('user' : 'user@gmail.com')
data = dumps(data)
parsed = json.loads(data)
for x in parsed:
for key,value in x.items():
print("values: ".format(value))
您可能会猜到我得到了所有键的所有值,如何只获取我想要的键的值?我也尝试过place = parsed[0]['place']
,但它只返回第一个“位置”值而不是所有值。我确定我遗漏了一些明显的东西,但这证明我很难理解。
我也在阅读文档并找到cursour.forEach,但找不到如何使用它的好例子。
【问题讨论】:
或者你只使用distinct()
。即db.voting.distinct('place', 'user' : 'user@gmail.com')
。它返回“不同”地点的列表。
【参考方案1】:
x['place']
是你要找的。p>
for x in parsed:
place = x['place']
... # do something with place
【讨论】:
完美,时间到了我会接受的。我觉得自己像个白痴,这太容易了。感谢您的帮助! @BrettJ 每个初学者都会遇到 :)以上是关于遍历 PyMongo 集合的主要内容,如果未能解决你的问题,请参考以下文章