java - MongoDB中不区分大小写的排序

如何按给定字段对 MongoDB 集合进行排序,不区分大小写?默认情况下,我在 a-z 之前得到 A-Z。

最佳答案

更新: 截至目前 mongodb 有不区分大小写的索引:

Users.find({})
  .collation({locale: "en" })
  .sort({name: 1})
  .exec()
  .then(...)

外壳:

db.getCollection('users')
  .find({})
  .collation({'locale':'en'})
  .sort({'firstName':1})

更新:此答案已过时,3.4 将具有不区分大小写的索引。查看 JIRA 了解更多信息 https://jira.mongodb.org/browse/SERVER-90


不幸的是,MongoDB 还没有不区分大小写的索引:https://jira.mongodb.org/browse/SERVER-90并且任务已被推回。

这意味着当前排序不区分大小写的唯一方法是实际创建一个特定的“小写”字段,复制相关排序字段的值(当然是小写)并对其进行排序。

https://stackoverflow.com/questions/22931177/

相关文章:

mysql - 何时使用 MongoDB

node.js - 判断预保存回调中是否有记录 "is new"

mongodb - 所以......这个NoSQL的东西

.net - 我应该使用哪个 NoSQL 数据库进行日志记录?

mongodb - 如何发现 mongodb 数据库结构

MongoDB - $size 的参数必须是一个数组,但类型为 : EOO/missing

c# - 支持和反对从 SQL Server 迁移到 MongoDB 的原因

python - 哪个 Python API 应该与 Mongodb 和 Django 一起使用

mongodb - 对 MongoDB $in 查询的响应顺序?

node.js - MongoDB Node 检查objectid是否有效