如何将 Python mongongine 对象(文档)转换为字典?

How to convert Python mongongine object (Document) to dictionary?

我有一个对象集合存储在 mongo 中,我用 python mongoengine 检索它。我希望 return 以 json 格式向 http 请求发送一些这些对象,但这似乎是不可能的。这是我想要 return 字典

的代码片段
        products = ProductModel.objects()
        products_dict = {}
        try:
            for index, product in enumerate(products):
                products_dict[f"product_{index}"] = product.to_dict()
        except StopIteration:
            pass
        finally:
            return jsonify(products_dict), HTTPStatus.OK

这是我的文档class:

from flask_mongoengine import Document
from mongoengine.fields import (
    StringField,
    DateTimeField,
    FloatField,
    IntField,
)


class ProductModel(Document):
    product_id = StringField(db_field="productId", unique=True)
    product_name = StringField(db_field="productName")
    price = FloatField(db_field="price")
    stock = IntField(db_field="stock")
    description = StringField(db_field="description", required=False)
    animal_type = StringField(db_field="animalType", required=False)
    expiration_date = DateTimeField(db_field="epirationDate", required=False)

    meta = {"indexes": [("product_id"), ("product_name")]}

我敢肯定这不会那么难有人将这些对象转换为字典我在 documentation

中找不到任何内容

好的,我找到了这两种方法。 Python 对象形成 class 继承自 mongo Document,可以转换:

  1. to json type 然后据此使用
  2. to SON type and then to dict