MST

星途 面试题库

面试题:Python中MongoDB复杂查询及聚合操作

假设有一个MongoDB数据库,其中有一个集合'reviews',每个文档包含'product_id'(产品ID)、'user_id'(用户ID)、'rating'(评分,1 - 5)和'review_text'(评论内容)。请使用Python的pymongo库,编写代码实现以下功能:1. 查询出评分大于4分的所有评论;2. 按照产品ID分组,计算每个产品的平均评分,并按照平均评分从高到低排序输出。
17.8万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
from pymongo import MongoClient

# 连接MongoDB
client = MongoClient('mongodb://localhost:27017/')
db = client['your_database_name']
reviews_collection = db['reviews']

# 1. 查询出评分大于4分的所有评论
high_rated_reviews = reviews_collection.find({'rating': {'$gt': 4}})
for review in high_rated_reviews:
    print(review)

# 2. 按照产品ID分组,计算每个产品的平均评分,并按照平均评分从高到低排序输出
pipeline = [
    {
        '$group': {
            '_id': '$product_id',
            'average_rating': {'$avg': '$rating'}
        }
    },
    {
        '$sort': {
            'average_rating': -1
        }
    }
]
product_avg_ratings = reviews_collection.aggregate(pipeline)
for product in product_avg_ratings:
    print(product)