MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Obtenir les champs obligatoires du document dans mongoengine ?

Vous pouvez parcourir la propriété Class._fields.

Si votre classe s'appelait Utilisateur, vous pourriez faire ceci :

>>> [k for k,v in User._fields.iteritems() if v.required]
['joinDate', 'password', 'nickName', 'lastVisited']

Pour obtenir une liste triée en fonction de la création, vous pouvez utiliser le compteur de création comme suit :

>>> 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']