2016-09-23 3 views
2

Ich möchte alle Felder eines Dokuments mit pymongo für das Abrufen von Daten von ihnen finden. Der folgende Code gibt alle Dokumente mit allen Feldern an. Aber können wir alle Felder oder Schlüssel eines Dokuments finden?Suchen Sie alle Felder eines Dokuments in pyMongo

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

kann ich alle Dokumente ObjectId von

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

Jetzt bekommen wir ids aller Dokumente haben. Können wir Felder finden?

Antwort

2

Die PyMongo find()-Methode gibt eine Cursor Instanz zurück, mit der Sie über alle übereinstimmenden Dokumente iterieren können. Die Dokumente in der Iteration ist ein Python Dictionary, so dass man alle seine Tasten keys() Methode, zum Beispiel auflisten:

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

die oben genannten, im allgemeinen sollten Sie die Felder in Ihrer Sammlung kennen. Wenn Sie Dokumente abfragen möchten, die bestimmte Felder enthalten, siehe Operator $exists.

+0

Kann auch als 'cursor = db ['collection']. Find()' funktionieren. Können wir Felder finden, indem wir '_id' eines Dokuments angeben? Sammlungsname wird nicht angegeben. – Amar

+0

Eine Datenbank kann viele Sammlungen enthalten, eine Sammlung kann viele Dokumente enthalten. Nur '_id' ohne Sammlungsnamen anzugeben, macht keinen Sinn. –

+0

Okay. Durch Angabe des Sammlungsnamens und dann '_id' eines bestimmten Dokuments? Zum Beispiel als 'db [' collection '] [' _ id '] '? oder wie 'document [ObjectId (' 57e35fca05cbcd1c385081a0 ')] '? – Amar

Verwandte Themen