Я хотел бы узнать, как это сделать с помощью 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" }
Ожидается (алфавитный/естественный порядок)
{ "_id" : ObjectId("571e5a787e88d30b20b7857c"), "name" : "file1" }
{ "_id" : ObjectId("571e5a977e88d30b20b7857f"), "name" : "file2" }
{ "_id" : ObjectId("571e5a8c7e88d30b20b7857d"), "name" : "file11" }
{ "_id" : ObjectId("571e5a937e88d30b20b7857e"), "name" : "file22" }
В соответствии с моим нахождением существуют другие способы сортировки, такие как использование aggregate
+ $project
и $meta: "textScore"
, но пока этого не удалось.
UPDATE:
Применение этой проблемы: сортировать папки/файлы по именам