2016-09-23 2 views
2

pymongo을 사용하여 문서의 모든 필드를 찾고 싶습니다. 아래 코드는 모든 문서에 모든 필드를 제공합니다. 그러나 문서의 모든 필드 나 키를 찾을 수 있습니까?pyMongo에서 문서의 모든 필드 찾기

f = db['Collection'].find() 
for i in f: 
    print(i['Date']) 

나는 이제 우리는 모든 문서의 ids있는 모든 문서 ObjectId

print(db['Collection'].distinct("_id")) 

에서 얻을 수 있습니다. 들판을 찾을 수 있을까요?

답변

2

메서드는 Cursor 인스턴스를 반환하므로 일치하는 모든 문서를 반복 할 수 있습니다.

cursor = db['collection'].find({}) 
for document in cursor: 
    print(document.keys()) # print all fields of this document. 

위를 말했다 데, 일반적으로이 컬렉션에 필드를 알아야한다 : 당신은 예를 들어, keys() 방법을 사용하여 키를 모두 나열 할 수 있도록 반복의 문서는 Python Dictionary입니다. 특정 필드가 포함 된 문서를 조회하려면 연산자 $exists을 참조하십시오.

+0

'cursor = db [ 'collection']. find()'로 작동 할 수도 있습니다. 문서의'_id'를 주어 필드를 찾을 수 있습니까? 컬렉션 이름을 지정하지 않았습니다. – Amar

+0

데이터베이스에는 많은 컬렉션이 포함될 수 있으며 컬렉션에는 많은 문서가 포함될 수 있습니다. 콜렉션 이름없이'_id' 만 지정하면 의미가 없습니다. –

+0

오케이. 컬렉션 이름과 특정 문서의'_id'를주는 것으로? 예를 들어'db [ 'collection'] [ '_ id']'? 또는'document [ObjectId ('57e35fca05cbcd1c385081a0')]'와 비슷합니까? – Amar

관련 문제