MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Obter campos obrigatórios do Documento no mongoengine?


Você pode percorrer a propriedade Class._fields.

Se sua classe se chamasse User, você poderia fazer isso:
>>> [k for k,v in User._fields.iteritems() if v.required]
['joinDate', 'password', 'nickName', 'lastVisited']

Para obter uma lista ordenada com base na criação, você pode usar o contador de criação da seguinte forma:
>>> from operator import itemgetter
>>> required_fields = ((v.creation_counter, k) for k,v in User._fields.iteritems() if v.required)
>>> sorted_required_fields = map(itemgetter(1), sorted(required_fields, key=itemgetter(0)))
>>> sorted_required_fields
['nickName', 'password', 'joinDate', 'lastVisited']