اذهب إلى المحتوى
  • 0

ظهور خطأ عند استخدام التابع sort في mongodb ضمن بايثون

Tamim Fahed

السؤال

أحاول استخدام تابع الترتيب sort لترتيب نتائج الاستعلام من خلال استخدام المكتبة pymongo ولكن يظهر لدي الخطأ التالي:

Traceback (most recent call last):
  File "find_ow.py", line 7, in <module>
    for message in db.messages.find({}, {'users.username':1}).sort({'users.username':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

وهذا هو الكود:

import pymongo
from  pymongo import Connection
connection = Connection()
db = connection.myDB
for message in db.messages.find({}, {'users.username':1}).sort({'users.username':1}):
    print message

ولكن نفس الاستعلام قمت بتنفيذه في mongodb وحصلت على النتائج دون أي خطأ. فما هي المشكلة هنا؟

تم التعديل في بواسطة Tamim Fahed
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

التابع .sort() في pymongo يأخذ مُعاملين key و direction لذا ، إذا كنت تريد الترتيب حسب المعرف _id ، فعليك الترتيب بهذا الشكل:

.sort("_id", 1)

أو:

.sort("_id", pymongo.ASCENDING)

// أو

.sort("_id", pymongo.DESCENDING)

إن كنت تريد الترتيب حسب عدة حقول فيُمكنك:

.sort([("field1", pymongo.ASCENDING), ("field2", pymongo.DESCENDING)])

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...