根据MongoMapper的数组大小在MongoDB中订购商品?
问题描述:
我想根据数组中的项目数选择一组项目。希望下面的例子来阐明我比较差的解释:根据MongoMapper的数组大小在MongoDB中订购商品?
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。
如果这是你想在核心服务器看到一个功能,您可以在这里添加一个案例:
啊,够公平 - 我认为这是支持的。感谢您的替代建议,这听起来像是我最好的选择。 – 2010-01-24 16:26:55