具有添加字段的Mongolite聚合查询

时间:2019-01-23 10:02:38

标签: mongodb mongodb-query mongolite

问题

我有一个hotelreviews_collection集合,其中包含100万行带有各种元数据的评论行(文档)。我想按Hotel_Name字段分组,计算这家酒店显示的次数,还可以通过查询获得字段“ lat”,“ lng”和“ Average_Score”。每个酒店名称的额外三行都相同。

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

我的尝试

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

当前代码

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

我对此一无所知,我们将不胜感激。

1 个答案:

答案 0 :(得分: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)
            }
        }
    ]
)