Стандартная find () в PyMongo не вернет объект, поля которого находятся в том же порядке, что и этот объект, если вы извлекли его через оболочку mongo.
Это связано с тем, что возвращаемый по умолчанию тип Dict и порядок не определены.
Вы можете использовать SON как предложено. Вот как я это сделал. Теперь порядок поля будет соблюден.
Это для pymongo == 3.4.0
from bson.codec_options import CodecOptions
from bson.son import SON
opts = CodecOptions(document_class=SON)
collection_son = mongo.db.collection.with_options(codec_options=opts)
collection_son.find_one({"imsid": '12345'})