3

У меня есть 3 коллекции в моей учебной базе данных - Пользователи, предприятия и обзоры. Я хотел бы прогнозировать оценки для других предметов с использованием склона один, но я не уверен, как лучше всего собирать дифференциалы рейтинга от MongoDB между предприятиями.Расчет Склона Один дифференциал от MongoDB

У меня есть 200 000 оценок в коллекции Review, и я хотел бы сравнить только предприятия, которые имеют общую категорию. Таким образом, я нахожу всех пользователей, которые имеют обзоры для предприятий в этих категориях.

business = businesses.find({'categories':{"$in" : business_categories}},{'business_id'}) 

for biz in all_businesses: 
    biz_list.append(biz['business_id']) 
reviews = training_reviews.find({'business_id':{"$in" : biz_list}}) 

for review in reviews: 
    review_list.append(review['user_id']) 

available_users = users.find({'user_id':{"$in": review_list}}) 

После того, как у меня есть пользователи, мне нужно создать матрицу всех своих оценок, так что я могу вычислить разницу между каждым бизнесом. Моя минимальная матрица будет 10k x 10k, и потому, что у меня будет несколько категорий для каждой рекомендации, которую я делаю, мне придется переделать ее для каждой рекомендации.

Есть ли эффективный способ сделать это в python? Было бы лучше экспортировать рейтинговую матрицу для ВСЕХ предприятий, а затем прогнозировать рейтинги?

Спасибо.

ответ

2

Я бы сказал, что если вы ищете эффективность, вы должны попытаться получить всю соответствующую информацию во встроенных документах в коллекцию отзывов.

Это означало бы, вы можете объединить в MongoDB

Model One-to-Many Relationships with Embedded Documents См для обсуждения моделирования с использованием встроенных документов в отличие от нормализации и общую тему Data Models

Смежные вопросы