MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MongoDB को क्रमबद्ध करना () PyMongo का उपयोग करके गैर-अनाम JSON सरणी में वापस आ जाता है

यहां समस्या यह है कि आपने JSON के रूप में इसे वापस करने के लिए किसी अन्य डेटा संरचना (अब एक स्ट्रिंग के रूप में) में पास करने से पहले JSON के रूप में प्रतिक्रिया को पहले ही कड़ा कर दिया है। तो आप मूल रूप से एक डबल एन्कोड कर रहे हैं और "स्ट्रिंग" एन्कोड हो जाता है।

तो बस एक बार डेटा पास करें:

docs = mongodb.find(...query...)
return bson.json_util.dumps({ 'success': True, 'mycollectionKey': docs })

तो इस तरह के एक छोटे से संग्रह पर:

{ "_id" : ObjectId("5343aeb5efbdb94c3647c8df"), "field" : "BBB" }
{ "_id" : ObjectId("5343aebbefbdb94c3647c8e0"), "field" : "aaa" }
{ "_id" : ObjectId("5343aebfefbdb94c3647c8e1"), "field" : "AAA" }

आपको इस तरह का परिणाम मिलता है:

{   
    "mycollectionKey": [
        {"field": "BBB", "_id": {"$oid": "5343aeb5efbdb94c3647c8df"}}, 
        {"field": "aaa", "_id": {"$oid": "5343aebbefbdb94c3647c8e0"}}, 
        {"field": "AAA", "_id": {"$oid": "5343aebfefbdb94c3647c8e1"}}
    ], 
    "success": true
}

यदि आप वास्तव में उन दो चाबियों के क्रम के बारे में चिंतित हैं तो आप स्ट्रिंग पर जाने के लिए बीएसओएन "डंप्स" का उपयोग कर सकते हैं, फिर मानक जेसन डिकोडर के साथ डीकोड कर सकते हैं ताकि मोंगो ऑब्जेक्ट्स deserialized के साथ मूल निर्देश प्राप्त कर सकें, फिर आगे डाल दिया आपका आदेशित निर्देश।

लेकिन वास्तव में आपके क्लाइंट को चाबियों के क्रम की परवाह नहीं करनी चाहिए और केवल उन मूल तत्वों की अपेक्षा करनी चाहिए।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. डीएओ और निर्भरता इंजेक्शन, सलाह?

  2. PHP में MongoDB foreach क्वेरी को कैसे कोड करें?

  3. जावा से स्थानीय mongoDB से कनेक्ट नहीं हो सकता

  4. C# .Net . में MongoDB संग्रहीत जावास्क्रिप्ट फ़ंक्शन को कॉल करें

  5. MongoDB क्वेरी का परिणाम सहेजा जा रहा है