mongoengine中ListField的限制长度

MDK*_*MDK 2 python limit mongodb listfield mongoengine

我可以ListField无条件限制mongoengie中数据的长度if吗?

我需要这样的东西:

list = db.ListField(IntField(), max_length = 24)
Run Code Online (Sandbox Code Playgroud)

在我的document.

或者我必须在要更新时检查我的列表的长度,如果我的列表长度大于 24,则不要更新它!

ale*_*cxe 5

中没有类似的内容ListField,但您可以使您的自定义ListField提供一个max_length属性:

class MyListField(ListField):
    def __init__(self, max_length=None,  **kwargs):
        self.max_length = max_length
        super(MyListField, self).__init__(**kwargs)

    def validate(self, value):
        super(MyListField, self).validate(value)

        if self.max_length is not None and len(value) > self.max_length:
            self.error('Too many items in the list')
Run Code Online (Sandbox Code Playgroud)