如何从mongodb中的集合中获取完整的键列表

时间:2015-04-28 21:24:30

标签: python mongodb pymongo

如何获取mongodb集合中使用的所有密钥的列表?

我正在尝试使用以下代码在python中创建一个csv文件:

userAgentProp_list = []
# userAgentProp is a set of user ids
# userColl is a mongodb collection
for user in userAgentProp:
    userAgentProp_list.append(userColl.find_one({"_id":user}))

with open('userWtihAgentProp.csv','w+') as f:
    w = csv.DictWriter(f,userAgentProp_list[0].keys())
    w.writeheader()
    for user in userAgentProp_list:
        # del row['_id']
        w.writerow(user)

但我一直收到错误:

ValueError: dict contains fields not in fieldnames

我认为这是因为userAgentProp_list[0]与集合中的其他文档没有完全相同的字段。

如何获取集合中使用的所有密钥列表?

1 个答案:

答案 0 :(得分:0)

我想我已经找到了解决方案。我喜欢有经验的人告诉我这是否正确和/或可以更好/更有效地完成。

def getCollectionKeys(collection):
    """Get a set of keys from a collection"""
    keys_list = []
    collection_list = collection.find()
    for document in collection_list:
        for field in document.keys():
            keys_list.append(field)
    keys_set =  set(keys_list)
    return keys_set