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

फ्लास्क और अजगर के साथ मोंगो का उपयोग करना

सबसे पहले find_one संग्रह में कोई मेल खाने वाला तत्व नहीं होने पर एकल शब्दकोश या कोई नहीं लौटाएगा। तो मुझे लगता है कि page[0] कुंजी 0 . के लिए पृष्ठ शब्दकोश का मान प्राप्त करने के बराबर है

यदि लौटाए गए दस्तावेज़ों में ObjectId है _id . के रूप में आप केवल jsonify . का उपयोग नहीं कर सकते क्योंकि, जैसे ObjectId JSON serializable नहीं है। आप कुछ इस तरह का उपयोग कर सकते हैं:

jsonify({ 'page': make_public_page({k:v for k, v in page.items() if k != '_id'}))

या आप बस _id . को हटा सकते हैं page.pop('_id') . पर कॉल करके

आप bson.json_util का भी उपयोग कर सकते हैं . इसमें बीएसओएन और जेएसओएन के बीच रूपांतरण के लिए उपकरण शामिल हैं।

from flask import Response 
from bson import json_util

और फिर jsonify . को बदलें कुछ इसी तरह के साथ:

return Response(
    json_util.dumps({'page' : make_public_page(page)}),
    mimetype='application/json'
)

संपादित करें

यदि आप समस्या से निपटने का छोटा और गंदा तरीका चाहते हैं तो आप इसे इस तरह कर सकते हैं:

from bson import json_util, ObjectId
import json

#Lets create some dummy document to prove it will work
page = {'foo': ObjectId(), 'bar': [ObjectId(), ObjectId()]}

#Dump loaded BSON to valid JSON string and reload it as dict
page_sanitized = json.loads(json_util.dumps(page))


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB के लिए मॉनिटरिंग Percona सर्वर - प्रमुख मेट्रिक्स

  2. रेडिट रैंकिंग एल्गोरिथम द्वारा मोंगोडब को छाँटना

  3. डोकर कंटेनर से मोंगोडब होस्ट करने के लिए कनेक्ट करें

  4. MongoDB और PostgreSQL विचार

  5. साझा MongoDB होस्टिंग के शीर्ष 5 लाभ