#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. Почему это происходит так медленно? и как я могу оптимизировать его, чтобы повысить производительность? Это проблема с библиотекой или проблема с запросом?