小编622*_*119的帖子

在MongoDB中按字母顺序排序文档(也称为自然排序顺序,为人类排序)

我想了解如何使用MongoDB执行此操作

我的文件名称为"file1","file2","file22","file11"(名称可以是任何内容,没有特定的模式)我运行查询以获取按名称排序的所有文档,结果不是预期.

> db.mydata.find().sort({"name":1});                                                                                                                          
{ "_id" : ObjectId("571e5a787e88d30b20b7857c"), "name" : "file1" }                                                                                            
{ "_id" : ObjectId("571e5a8c7e88d30b20b7857d"), "name" : "file11" }                                                                                           
{ "_id" : ObjectId("571e5a977e88d30b20b7857f"), "name" : "file2" }                                                                                            
{ "_id" : ObjectId("571e5a937e88d30b20b7857e"), "name" : "file22" } 
Run Code Online (Sandbox Code Playgroud)

预期的是(字母/自然顺序)

{ "_id" : ObjectId("571e5a787e88d30b20b7857c"), "name" : "file1" }                                                                                            
{ "_id" : ObjectId("571e5a977e88d30b20b7857f"), "name" : "file2" }                                                                                           
{ "_id" : ObjectId("571e5a8c7e88d30b20b7857d"), "name" : "file11" }
{ "_id" : ObjectId("571e5a937e88d30b20b7857e"), "name" : "file22" }
Run Code Online (Sandbox Code Playgroud)

根据我的发现,还有其他方法可以使用aggregate+ $project和排序$meta: "textScore",但到目前为止我还没有成功.

更新:此问题的应用程序:按名称对文件夹/文件进行排序 Windows资源管理器,按名称排序的文件夹

javascript natural-sort mongodb mongodb-query

15
推荐指数
1
解决办法
1039
查看次数

标签 统计

javascript ×1

mongodb ×1

mongodb-query ×1

natural-sort ×1