MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Sử dụng mongo với FLASK và python

Trước hết find_one sẽ trả về từ điển đơn hoặc Không có nếu không có phần tử phù hợp trong bộ sưu tập. Vì vậy, tôi nghĩ rằng page[0] tương đương với việc nhận giá trị của từ điển trang cho khóa 0

Nếu tài liệu được trả lại chứa ObjectId dưới dạng _id bạn không thể chỉ sử dụng jsonify bởi vì, như ObjectId không thể tuần tự hóa JSON. Bạn có thể sử dụng một cái gì đó như sau:

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

hoặc bạn có thể chỉ cần xóa _id bằng cách gọi page.pop('_id')

Bạn cũng có thể sử dụng bson.json_util . Nó chứa các công cụ để chuyển đổi giữa BSON và JSON.

from flask import Response 
from bson import json_util

Và sau đó thay thế jsonify với một cái gì đó tương tự như sau:

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

Chỉnh sửa

Nếu bạn muốn cách giải quyết vấn đề ngắn gọn và dễ hiểu, bạn có thể làm như sau:

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. Xử lý các truy vấn cơ sở dữ liệu không đồng bộ trong node.js và mongodb

  2. Mongoose và những lời hứa:làm thế nào để nhận được một mảng kết quả truy vấn?

  3. Cách loại trừ một số trường khỏi tài liệu

  4. loại bỏ các giá trị 0 nếu 0 được theo sau bởi> =1 khỏi các mảng trong MongoDB

  5. Làm cách nào để tính trung bình các giá trị được tổng hợp trong mongodb?