使用PHP对带有外来字符的MongoDb文档进行排序
我有一个数据集,其中包含一个列表,其中列出了每种语言所使用的语言 e、 g使用PHP对带有外来字符的MongoDb文档进行排序,php,mongodb,sorting,Php,Mongodb,Sorting,我有一个数据集,其中包含一个列表,其中列出了每种语言所使用的语言 e、 g 德国 荷兰 斯洛文尼亚 Česky Б 问题是,当我对语言进行排序时,我会得到如上所示的列表。无论多么自然 Б Česky 德国 荷兰 斯洛文尼亚 你建议怎么做 一个是创建一个排序字段,但我有另一个包含15000个文档的集合,在这个集合上创建排序索引需要做大量的工作。MongoDB没有基于区域设置的排序,而是使用Unicode 码点排序。这适用于标准英语字母表,但显然不适用于其他字母表。正在跟踪此问题,可以找到解
- 德国
- 荷兰
- 斯洛文尼亚
- Česky
- Б
- Б
- Česky
- 德国
- 荷兰
- 斯洛文尼亚
一个是创建一个排序字段,但我有另一个包含15000个文档的集合,在这个集合上创建排序索引需要做大量的工作。MongoDB没有基于区域设置的排序,而是使用Unicode 码点排序。这适用于标准英语字母表,但显然不适用于其他字母表。正在跟踪此问题,可以找到解决方法 我的答案取自谷歌集团发布的关于瑞典信件分类的问题。如果您想了解更多有关Unicode排序规则的信息,可以查看 建议将您的数据拉入一种能够正确处理Unicode排序的语言,并从中应用排序字段。或者,语言列表通常还包括一个区域设置代码(例如英语为EN),这就是它们的排序方式 使用区域设置代码列表,您的顺序将按照您的示例正确:
MongoDB没有基于区域设置的排序,而是使用Unicode 码点排序。这适用于标准英语字母表,但显然不适用于其他字母表。正在跟踪此问题,可以找到解决方法 我的答案取自谷歌集团发布的关于瑞典信件分类的问题。如果您想了解更多有关Unicode排序规则的信息,可以查看 建议将您的数据拉入一种能够正确处理Unicode排序的语言,并从中应用排序字段。或者,语言列表通常还包括一个区域设置代码(例如英语为EN),这就是它们的排序方式 使用区域设置代码列表,您的顺序将按照您的示例正确:
我在芬兰语中使用了这个配置,在这个链接中你可以找到关于它的信息
collation : { locale: "country"}
//example query filter by "field"
db.items.find({"field": "value"}).sort({"field" : -1}).collation({"locale": "pl"})
我在芬兰语中使用了这个配置,在这个链接中你可以找到关于它的信息
collation : { locale: "country"}
//example query filter by "field"
db.items.find({"field": "value"}).sort({"field" : -1}).collation({"locale": "pl"})
我将使用区域设置代码的方法,对于15K+文档,我将查看是否能够按照您提供的链接中的描述修补数据库引擎。如果您不介意,请告诉我它是如何运行的,我非常感兴趣。对于15K+文档,我将使用区域设置代码的方法,我会看看是否能按照您提供的链接中的描述修补数据库引擎。如果您不介意的话,请告诉我进展如何,我很感兴趣。