MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Menggunakan mongo dengan FLASK dan python

Pertama-tama find_one akan mengembalikan kamus tunggal atau Tidak Ada jika tidak ada elemen yang cocok dalam koleksi. Jadi menurut saya page[0] setara dengan mendapatkan nilai kamus halaman untuk kunci 0

Jika dokumen yang dikembalikan berisi ObjectId sebagai _id anda tidak bisa begitu saja menggunakan jsonify karena, seperti ObjectId bukan JSON serializable. Anda dapat menggunakan sesuatu seperti ini:

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

atau Anda cukup menghapus _id dengan memanggil page.pop('_id')

Anda juga dapat menggunakan bson.json_util . Ini berisi alat untuk konversi antara BSON dan JSON.

from flask import Response 
from bson import json_util

Dan kemudian ganti jsonify dengan sesuatu yang mirip dengan ini:

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

Sunting

Jika Anda ingin cara yang singkat dan kotor untuk menangani masalah, Anda dapat melakukannya seperti ini:

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. Bagaimana Anda bisa men-debug fungsi javascript yang tersimpan di MongoDB?

  2. Tidak dapat membuat indeks di mongodb, kunci terlalu besar untuk diindeks

  3. Permintaan berbeda dengan MongoMapper

  4. MongoDB:BSON ke JSON

  5. Apa yang dilakukan setiap proses Meteor?