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