最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Mongoose聚合列为平均值,输出为附加字段

运维笔记admin17浏览0评论

Mongoose聚合列为平均值,输出为附加字段

Mongoose聚合列为平均值,输出为附加字段

我想查询数据库得到一个分组结果,它将计算平均结果,此外,从对象输出其他字段。

我有一个这样的架构:

    resturantName: {type:String},
    resturantLocation: {type:String},    
    comfort: {type: Number, min: min, max: max, default: 0},
    cleanliness: {type: Number, min: min, max: max, default: 0},
    valueForMoney: {type: Number, min: min, max: max, default: 0},
    avgRating: {type: Number}

我根据'resturantLocation'查询数据库,并想计算'total_average_rating',另外输出餐馆名称和位置。

我尝试了多个查询,但我一直遇到各种错误,这是我最近的尝试:

query = [
    { "$match": { "resturantName": resturantName} },
    {
        "$group": {
            "_id": 1,
            "resturantName": resturantName,
            "resturantLocation": "resturantLocation",
            "total_average_rating": { "$avg": "$avgRating" }
        }
    }   
];

我调查了使用$ project,但我怀疑它符合我的需求。

请指教。

回答如下:

您可以尝试以下查询。

$first保留额外的字段和$avg以获得平均评分。

query = [
  { "$match": { "resturantName": resturantName} },
  { "$group": { 
       "_id": "$resturantName", 
       "resturantLocation": {"$first":"$resturantLocation"}, 
       "total_average_rating": { "$avg": "$avgRating" 
        } 
     } 
  }
];
发布评论

评论列表(0)

  1. 暂无评论