0

问题

我有一个集合 hotelreviews_collection 包含 100 万行(文档)和各种元数据的评论。我想按 Hotel_Name 字段进行分组,计算这家酒店出现的次数,还可以通过我的查询获取字段“lat”、“lng”和“Average_Score”。对于每个 Hotel_Name,额外的三行是相同的。

我正在使用连接到本地 MongoDB 的 mongolite 库在 R 中进行查询。

我的尝试

我已经使用下面的代码检索 Hotel_Names 并计算它们的出现次数,但我一生都无法让其他字段正常工作。

当前代码

overviewData <- M_CONNECTION$aggregate('[{"$group":{"_id":"$Hotel_Name", "count": {"$sum":1}, "average":{"$avg":"$distance"}}}]',
  options = '{"allowDiskUse":true}')

我对此完全迷失了,任何和所有的帮助将不胜感激。

4

1 回答 1

0

我已经使用以下代码解决了我的问题。

db.getCollection("hotelreviews_collection").aggregate(
    [
        { 
            "$group" : {
                "_id" : {
                    "Hotel_Name" : "$Hotel_Name", 
                    "lat" : "$lat", 
                    "lng" : "$lng", 
                    "Average_Score" : "$Average_Score"
                }, 
                "COUNT(Hotel_Name)" : {
                    "$sum" : NumberInt(1)
                }
            }
        }, 
        { 
            "$project" : {
                "Hotel_Name" : "$_id.Hotel_Name", 
                "lat" : "$_id.lat", 
                "lng" : "$_id.lng", 
                "Average_Score" : "$_id.Average_Score", 
                "COUNT(Hotel_Name)" : "$COUNT(Hotel_Name)", 
                "_id" : NumberInt(0)
            }
        }
    ]
)
于 2019-01-23T12:51:53.067 回答