J'essaie d'utiliser la fonction de tri lors de l'interrogation de mon mongoDB, mais cela échoue. La même requête fonctionne dans la console MongoDB mais pas ici. Le code est le suivant:
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
L'erreur que j'obtiens est la suivante:
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
J'ai trouvé un lien ailleurs qui dit que je dois placer un 'u' devant la clé si vous utilisez pymongo, mais cela n'a pas fonctionné non plus. N'importe qui d'autre fait fonctionner cela ou est-ce un bogue.
.sort([("field1",pymongo.ASCENDING), ("field2",pymongo.DESCENDING)])
pour trier plusieurs champs.