2015-04-28 34 views
2

如何获取mongodb集合中使用的所有密钥的列表?如何获取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]没有与集合中的其他文档相同的字段。

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

回答

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