Pymongo намного медленнее, чем MongoDB, по тому же самому запросу

#python #mongodb #mongodb-query #aggregation-framework #pymongo

Вопрос:

У меня есть запрос, который я выполняю как в pymongo, так и в Mongodb. Узкое место, скорее всего, кроется в $match заявлении. Но он отлично работает в MongoDB и вызывает у меня проблемы в Pymongo.

Запрос —

 list(db.mentorbasicdetails.aggregate([    {"$lookup":{  "from":"colleges",  "let":{  "college":"$educations.collegeId",  "profile":"$educations.profileTypeId"  },  "pipeline":[    { "$match": {  "$expr": {  "$and": [  { "$eq": ["$patientId", "$patientId"] },  { "$eq": ["$_id", "$college"] }  ]  }  }},    {"$project":    {    "tier":{"$min":["$tier",3]},  "profile":"$profile",  "_id":0    }    }    ],  "as":"collegetiers"  }},  ]))   

pymongo.has_c() возвращает значение True.

Для запуска в pymongo требуется около минуты, а для MongoDB — ~2 секунды.

Комментарии:

1. Так в чем же вопрос?

2. Почему это происходит так медленно? и как я могу оптимизировать его, чтобы повысить производительность? Это проблема с библиотекой или проблема с запросом?