Mongoengine as_pymongo performance
When you need to get only several fields from the list of complex objects, it works much faster with as_pymongo function.
In my situation I have a 16x increase:
%timeit list(SomeObject.objects.scalar('id')[0:500])
# 129 ms ± 11 ms per loop
%timeit list(o['_id'] for o in SomeObject.objects.scalar('id')[0:500].as_pymongo())
# 7.98 ms ± 849 µs per loop