gpt4 book ai didi

MongoDb Sort 使用字母数字值给出不正确的结果

转载 作者:可可西里 更新时间:2023-11-01 09:57:36 31 4
gpt4 key购买 nike

 [
{"name": "Card 1"},
{"name": "Card 2"},
{"name": "Card 10"}
]

{ "name": 1 } 排序的 MongoDb 结果是

  [ 
{"name": "Card 1"},
{"name": "Card 10"},
{"name": "Card 2"}
]

我该如何纠正它?

最佳答案

这是因为,您的数据中的numbers 被比较为String。因此,您得到的排序值是 1、10、2,依此类推。

当您创建集合索引时,您必须使用各种特定于语言的规则指定排序规则以进行比较。默认情况下,当您创建一个没有排序规则信息的集合时,默认值 numericOrdering 设置为 false - 这意味着在比较时数字被视为 String。

因此,您必须使用 collation 创建索引numericOrdering 为 true 或在查询时提供此类信息,如下所示。

db.collection.find({}).sort({
"name": 1
}).collation({
locale: "en_US", numericOrdering: true
})

关于MongoDb Sort 使用字母数字值给出不正确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57406820/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com