我有一个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}')
我对此一无所知,我们将不胜感激。
答案 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)
}
}
]
)