totalHotelsInTown=hotels.aggregate([ {"$group": {"_id": "$Town", "TotalRestaurantInTown": {"$sum":1}} } ])
NumOfHotelsInTown={}
for item in totalHotelsInTown:
NumOfHotelsInTown[item['_id']]=item['TotalRestaurantInTown']
results = hotels.aggregate(
[{"$match": {"cuisine": cuisine}},
{"$group": {"_id": "$town", "HotelsCount": {"$sum": 1} }}, {"$project": {"HotelsCount":1,"Percent": {"$multiply": [{"$divide": ["$HotelsCount", NumOfHotelsInTown["$_id"]]}, 100]}}}, {"$sort": {"Percent": 1}},
{"$limit": 1}])
Я хочу передать значение поля "_id"
в качестве ключа для словаря python, но интерпретатор принимает "$_id"
в качестве ключа вместо своего значения и дает KeyError
из-за который. Любая помощь приветствуется. Спасибо!
В словаре 'NumOfHotelsInTown' есть пары ключевых значений места и количества отелей
Когда я пытаюсь получить значение из словаря NumOfHotelsInTown, я даю ключ динамически с помощью "$ _id ".
Точная ошибка, которую я получаю:
{"$group": {"_id": "$borough", "HotelsCount": {"$sum": 1} }}, {"$project": {"HotelsCount":1,"Percent": {"$multiply": [{"$divide": ["$HotelsCount", NumOfHotlesInTown["$_id"]]}, 100]}}}, {"$sort": {"Percent": 1}},
KeyError: '$_id'