Ich versuche, die Sortierfunktion zu verwenden, wenn ich meine mongoDB abfrage, aber sie schlägt fehl. Die gleiche Abfrage funktioniert in der MongoDB-Konsole, jedoch nicht hier. Der Code lautet wie folgt:
import pymongo
from pymongo import Connection
connection = Connection()
db = connection.myDB
print db.posts.count()
for post in db.posts.find({}, {'entities.user_mentions.screen_name':1}).sort({u'entities.user_mentions.screen_name':1}):
print post
Der Fehler, den ich bekomme, ist wie folgt:
Traceback (most recent call last):
File "find_ow.py", line 7, in <module>
for post in db.posts.find({}, {'entities.user_mentions.screen_name':1}).sort({'entities.user_mentions.screen_name':1},1):
File "/Library/Python/2.6/site-packages/pymongo-2.0.1-py2.6-macosx-10.6-universal.egg/pymongo/cursor.py", line 430, in sort
File "/Library/Python/2.6/site-packages/pymongo-2.0.1-py2.6-macosx-10.6-universal.egg/pymongo/helpers.py", line 67, in _index_document
TypeError: first item in each key pair must be a string
Ich habe an anderer Stelle einen Link gefunden, der besagt, dass ich bei Verwendung von Pymongo ein 'u' vor den Schlüssel setzen muss, aber das hat auch nicht funktioniert. Jeder andere bringt das zum Laufen oder ist das ein Fehler?
.sort([("field1",pymongo.ASCENDING), ("field2",pymongo.DESCENDING)])
um mehrere Felder zu sortieren.