gpt4 book ai didi

ruby - 您如何使用 Ruby 计算 Mongo 中特定集合的字段中所有条目的平均值

转载 作者:可可西里 更新时间:2023-11-01 09:37:07 24 4
gpt4 key购买 nike

给定以下数据:

{
_id: ObjectId("51659dc99d62eedc1a000001"),
type: "image_search",
branch: "qa_media_discovery_feelobot",
time_elapsed: 19000,
test: "1365613930 All Media",
search_term: null,
env: "delta",
date: ISODate("2013-04-10T17:13:45.751Z")
}

我想运行如下命令:

avg_image_search_time = @coll.find("type" => "image_search").avg(:time_elapsed)

我将如何完成这个?

最佳答案

我知道这方面的文档有点难以理解。

avg_image_search_time = @coll.aggregate([ {"$group" => {"_id"=>"$type", "avg"=> {"$avg"=>"$time_elapsed"}}}, {"$match" => {"_id"=>"image_search"}} ]).first['avg']

分解一下:

我们按 type 字段对匹配项进行分组,并返回每种类型的 $avg time_elapsed。我们将生成的平均值命名为 avg。然后,在这些组中,仅过滤掉组 _id 与 image_search 匹配的组。最后,由于聚合总是返回一个数组,因此获取第一个结果(应该只有一个),并获取我们命名的 avg 字段。

关于ruby - 您如何使用 Ruby 计算 Mongo 中特定集合的字段中所有条目的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15933484/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com