小编Vor*_*ive的帖子

将mongodb返回对象转换为字典

我正在使用瓶子框架和mongoengine.我有订单型号:

class OrderDetail(Option):
    orderDetailsQty = FloatField()

    def to_dict(self):
        return mongo_to_dict_helper(self)


class Order(Document):
    userName = StringField(required=True)
    orderDate = DateTimeField()
    orderStatus = ListField(EmbeddedDocumentField(Status))
    orderDetails = ListField(EmbeddedDocumentField(OrderDetail))
    orderComments = ListField(EmbeddedDocumentField(Comment))
    isActive = BooleanField()

    def to_dict(self):
        orderObj = mongo_to_dict_helper(self)
        orderDetailList = []
        for orderDetail in orderObj["orderDetails"]:
            orderDetailList.append(orderDetail.__dict__)
        orderObj["OrderDetails"] = orderDetailList
        return (self)
Run Code Online (Sandbox Code Playgroud)

当查询mongodb时,我得到一个对象,然后使用以下函数将其转换为dict:

def mongo_to_dict_helper(obj):
    return_data = []
    for field_name in obj._fields:
        if field_name in ("id",):
            continue
        data = obj._data[field_name]

        if isinstance(obj._fields[field_name], StringField):
            return_data.append((field_name, str(data)))
        elif isinstance(obj._fields[field_name], FloatField):
            return_data.append((field_name, float(data)))
        elif isinstance(obj._fields[field_name], IntField):
            return_data.append((field_name, …
Run Code Online (Sandbox Code Playgroud)

python mongodb mongoengine bottle python-2.7

28
推荐指数
4
解决办法
3万
查看次数

标签 统计

bottle ×1

mongodb ×1

mongoengine ×1

python ×1

python-2.7 ×1