Python Mongoengine-获取文档属性的类型

Python Mongoengine-获取文档属性的类型,python,mongoengine,Python,Mongoengine,有没有一种简单的方法可以获取文档给定属性的类型? 我有属性的名称,我想检查它是否是一个数字。例如,如果输入是字符串“price”,我应该返回True,因为值是数字 目前,我正在尝试获取给定属性中具有非空值的第一个文档,但我没有成功,我想知道是否有更直接的方法来获取值的类型。我认为最好的方法是检查文档字段的类型并维护字段类型(例如StringField)之间的映射和实际类型(例如str) 以下内容可以让您了解如何实现这一目标: class TestDocument(Document): s

有没有一种简单的方法可以获取文档给定属性的类型? 我有属性的名称,我想检查它是否是一个数字。例如,如果输入是字符串“price”,我应该返回True,因为值是数字


目前,我正在尝试获取给定属性中具有非空值的第一个文档,但我没有成功,我想知道是否有更直接的方法来获取值的类型。

我认为最好的方法是检查文档字段的类型并维护字段类型(例如StringField)之间的映射和实际类型(例如str)

以下内容可以让您了解如何实现这一目标:

class TestDocument(Document):
    s = StringField()
    i = IntField()

assert isinstance(TestDocument.s, StringField)

def get_field_type(docCls, attr):
    field = getattr(docCls, attr)
    mapping = {StringField: str, IntField: int}
    return mapping[type(field)]

assert get_field_type(TestDocument, 's') == str
assert get_field_type(TestDocument, 'i') == int