【发布时间】: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'})。它返回“不同”地点的列表。
标签: python dictionary indexing iteration pymongo