Я решаю проблему, меняя подход.Рассматривая, как mongoengine обрабатывает SequenceField :
fields.py
counter = collection.find_and_modify(query={'_id': sequence_id},
update={'$inc': {'next': 1}},
new=True,
upsert=True)
Используя тот же подход, я создал функцию, которая делает то же самое, но использует2 идентификатора и год в качестве идентификатора запроса:
next_number = collection.find_and_modify(
query={'_id': oid+'_'+oeid+'_'+str(year)},
update={'$inc': {'next': 1}},
new=True,
upsert=True)
Итак ... каждый раз, когда создается объект, я использую эту функцию для генерации следующего порядкового номера и когда год меняет новую строкусоздается, поэтому порядковый номер снова начинается с 1.