gpt4 book ai didi

ruby-on-rails - 在 mongoid 中与组求和

转载 作者:可可西里 更新时间:2023-11-01 09:57:05 25 4
gpt4 key购买 nike

我是 mongoid 和 mongodb 的新手。我有一个模型名称 like_count(account_id, create_at, updated_at, like_cnt)。我需要每个帐户的总和,例如按排序顺序计数。我试过类似的东西

LikeCount.group_by(&:account_id).sum(:like_cnt)

但似乎是错误的。

最佳答案

你最好使用 aggregation framework助力车语法中来自 MongoDB 的方法。 .group_by 等其他方法是遗留的 JavaScript 引擎包装器,它们在评估结果时要慢得多:

LikeCount.collection.aggregate([
{"$group" => {
"_id" => "$account_id",
"likes" => {"$sum" => "$like_count"}
}},
{"$sort" => { "likes" => -1}}
])

使用 $group管道阶段,以便通过给定的 _id 键和 $sort 聚合结果管道对结果进行排序,在本例中为“降序”。

aggregation framework以 native 代码实现,处理结果的速度要快得多。

关于ruby-on-rails - 在 mongoid 中与组求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24735924/

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