পাইমঙ্গো দিয়ে .sort ব্যবহার করে


108

পাইমঙ্গো সহ, যখন আমি তাদের 'নম্বর' এবং 'তারিখ' ক্ষেত্রগুলি অনুসারে বাছাই করা অবজেক্টগুলি পুনরুদ্ধার করার চেষ্টা করি:

db.test.find({"number": {"$gt": 1}}).sort({"number": 1, "date": -1})

আমি এই ত্রুটি পেয়েছি:

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

আমার সাজানোর ক্যোয়ারিতে কী সমস্যা?

উত্তর:


205

sort কী-দিকের জোড়গুলির তালিকা হওয়া উচিত

db.test.find({"number": {"$gt": 1}}).sort([("number", 1), ("date", -1)])

এটিকে তালিকাভুক্ত করার কারণটি হ'ল আর্গুমেন্টগুলির অর্ডিংয়ের বিষয়টি গুরুত্বপূর্ণ এবং dictসেগুলি পাইথনে << 3.6 এ অর্ডার করা হয়নি <


29
পাইথনের এটি তালিকা হওয়ার কারণটি হ'ল sort()পাইথনটিতে বিষয়গুলি এবং ডিক্টের পক্ষে যুক্তির ক্রম অর্ডার করা হয় না।
আন্দ্রে লাসলো 12

@ আন্দ্রে লাসজ্লো একটি অর্ডারডটিক্ট () ব্যবহার করা যেতে পারে?
জাকদানিস

9
এটি আমাকে এক টন গবেষণা বাঁচিয়েছে। লিটল মঙ্গোডিবি বইটি সাজানোর উদাহরণগুলিতে বিভ্রান্ত করে।
ডোগুকান তুফেকি

4
এটি যদি কেবল একটি ক্ষেত্র হয়, তবে এটির বাছাই হতে পারে ("_ আইডি", 1)
হারিস এনপি

2
পাইথন .6. in এ + ডিক্টস অর্ডার করা হয়েছে তাই যদি কেউ এর জন্য প্রস্তুত থাকে তবে জিমেরিক মোংডোব সিনট্যাক্সের সাথে সামঞ্জস্য রেখে আনতে পিমোঙ্গোর কাছে টানা অনুরোধ করা উচিত। পুরানো অজগর সংস্করণগুলিতে পাইমোঙ্গো চালানোর সময় অবশ্যই এটি কার্যকর হবে না ..
থাইজেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.