现在我得到了:
@directories = collection.directories.all.asc(:name)
但它区分大小写,我该如何进行不区分大小写的排序?
答案 0 :(得分:16)
目前您 无法 在MongoDB中创建不区分大小写的索引,请参阅...
http://jira.mongodb.org/browse/SERVER-90
所以,似乎这意味着你不能做不区分大小写的“排序”。
如果您觉得有用,可以通过上面的链接提交该功能,以便将来包含在MongoDB中。
来自10Gen的Eliot Horowitz(MongoDB的支持者)在此期间建议:短期内 - 我只想添加一个 您调用.toLower()的第二个字段 在插入之前。然后你可以排序 在那。
答案 1 :(得分:4)
您可能需要存储 场地两次,一次具有真正的价值, 并再次全部小写。您可以 然后查询小写版本 不区分大小写的搜索(不要忘记 也小写查询字符串)。
此方法有效(或必要) 对于许多数据库系统,它 应该比常规表现更好 基于表达的技术(至少 用于前缀或完全匹配)。
选中此answer
答案 2 :(得分:2)
如果您的收藏不会导致内存崩溃(99%的情况下),只需在那里进行排序:
Blah.all.sort_by{|i| i.blah_field.downcase}
答案 3 :(得分:-2)
我认为你必须使用regex
已请求该功能答案 4 :(得分:-4)
regexsearch = Regexp.new(params[:search], true)
@users = User.where(:email => regexsearch).all
应该这样做:)