MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Ottieni i campi obbligatori da Document in mongoengine?

Puoi scorrere la proprietà Class._fields.

Se la tua classe fosse chiamata Utente potresti farlo:

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

Per ottenere un elenco ordinato in base alla creazione puoi utilizzare il contatore di creazione in questo modo:

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