gpt4 book ai didi

ruby - 使用 MongoMapper 根据数组的大小在 MongoDB 中排序项目?

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

我想选择一个根据数组中的项目数排序的项目集合。希望下面的例子能澄清我相当糟糕的解释:

class Thing
include MongoMapper::Document

key :name, String
key :tags, Array
end

我想检索所有 Thing,从标签最多的到标签最少的排序。此示例中的标签只是标签数组中的字符串。基本上我想要一些与此相同的东西(但有效):

Thing.all(:order => 'tags.count desc')

这可能吗?

最佳答案

核心服务器目前不支持计算数组的大小,然后按其排序。我认为目前最好的选择是自己缓存数组大小,并在该字段上添加索引。

class Thing
include MongoMapper::Document

key :name, String
key :tags, Array
key :tag_size, Integer, :default => 0, :index => true
end

然后只需向您的模型添加一个回调,在保存时更新 tag_size。

如果这是您希望在核心服务器中看到的功能,您可以在此处添加案例:

http://jira.mongodb.org/browse/SERVER

关于ruby - 使用 MongoMapper 根据数组的大小在 MongoDB 中排序项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2126619/

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