【问题标题】:how to apply aggregate in pymongo如何在 pymongo 中应用聚合
【发布时间】:2016-08-08 16:44:02
【问题描述】:

通过 MongoDb 中的以下查询,我从整个数据中获取所有团队。

db.player_level_data.aggregate([{$group : {_id: {team_name : "$team_name"}}}]).toArray()

我需要通过pymongo在python中导入这个团队数组。我尝试了以下代码。

pipe = [
{'$group': {'_id': {'team_name' : "$team_name"}}}
]
data  = db.player_level_data.aggregate(pipeline=pipe)
pprint (data)

但它打印了一个 pymongo 光标对象。对此有任何想法。谢谢

【问题讨论】:

  • 另一个更新 .. 我尝试打印 `pprint(data.next()) 打印第一个团队名称。这意味着在遍历游标对象之后,我可能能够获得所有团队名称。有什么办法可以避免光标对象。

标签: python mongodb pymongo


【解决方案1】:

我假设光标对象是generator,所以只需将其转换为列表并打印该列表:

pprint(list(data))

请注意,打印后数据应为空。因此,如果您需要继续处理该数据,请将 list(data) 保存到变量并与该变量交互:

l_data = list(data)
pprint(l_data)

【讨论】:

  • 嘿安德烈,我的列表中的一个元素如下 ` {u'_id': {u'team_code': 7, u'team_id': 2, u'team_name': u'Aston Villa '}}` 我如何获取个人键的值。
  • element.get('id') 或 element['id']
【解决方案2】:

当然,这会返回一个游标对象。

list(cursor)

应该给你一份物品清单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-15
    • 2016-10-14
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    • 1970-01-01
    • 2018-11-08
    相关资源
    最近更新 更多