2015-06-04 7 views
5

Ich möchte zuerst neueste Beiträge zu bekommen, und versuchen Sie Folgendes:pymongo nach dem Datum sortiert

db.posts.find({"date": {"$lt": tomorrow, "$gte": 
       today}}).sort({'date':pymongo.DESCENDING}) 

(ohne Art, erhalte ich die älteste Beiträge zuerst in Ordnung)

Ich erhalte diesen Fehler

TypeError: if no direction is specified, key_or_list must be an instance of list 

Was geht hier vor? Ist es nicht möglich, nach Datum zu sortieren?

Antwort

12

Dies ist nicht das korrekte Format der Parameter für die sort-Funktion. Die korrekte Syntax würde wie folgt aussehen:

db.posts.find(...).sort('date',pymongo.DESCENDING) 

Hier ist ein Link zu der entsprechenden Dokumentation der sort Funktion: http://api.mongodb.org/python/current/api/pymongo/cursor.html#pymongo.cursor.Cursor.sort

durch mehrere Parameter sortieren Sie die folgende Syntax verwenden:

db.posts.find(...).sort([ 
    ('date', pymongo.ASCENDING), 
    ('other_field', pymongo.DESCENDING) 
]): 
3

In PyMongo Sie versuchen, diese können auch, wenn ein Fehler für .Sort ist ('date', pymongo.DESCENDING)

db.posts.find().sort('date', -1) 
Verwandte Themen