根据发布版本排序,即; a.b.c
Sort on the basis of release version i.e; a.b.c
我有一个集合,字段 version
的顺序是随机的
[
{
"_id" : ObjectId("5ea7dfcf33b735ec0ae69019"),
"version" : "1.2.1"
},
{
"_id" : ObjectId("5ea7dfcf33b735ec0ae6901a"),
"version" : "1.2.2"
},
{
"_id" : ObjectId("5ea7dfcf33b735ec0ae6901b"),
"version" : "1.2.3"
},
{
"_id" : ObjectId("5ea7dfcf33b735ec0ae6901c"),
"version" : "1.1.0"
},
{
"_id" : ObjectId("5ea7dfcf33b735ec0ae6901d"),
"version" : "1.1.1"
},
{
"_id" : ObjectId("5ea7dfcf33b735ec0ae6901e"),
"version" : "1.3.1"
},
{
"_id" : ObjectId("5ea7dfcf33b735ec0ae6901f"),
"version" : "1.1.2"
},
.
.
.
{
"_id" : ObjectId("5ea7dfcf33b735ec0ae6901f"),
"version" : "1.9.1"
},
{
"_id" : ObjectId("5ea7dfcf33b735ec0ae6901f"),
"version" : "1.10.1"
}
]
等等
我想得到一个基于版本排序的输出。
我可以在拆分版本后对其进行排序,但我不想采用这种方法。
如有任何帮助,我们将不胜感激。
提前致谢:)
您可以通过 collation
获得此行为
首先创建一个索引:
.createIndex({version:1},{collation:{locale:"en",numericOrdering:true}})
并在需要排序时指定排序规则:
.find().sort({version:1}).collation({locale:"en",numericOrdering:true})
你可以在没有索引的情况下获得类似的行为,但对于非平凡的数据集,它确实使它表现得更好。
我有一个集合,字段 version
的顺序是随机的
[
{
"_id" : ObjectId("5ea7dfcf33b735ec0ae69019"),
"version" : "1.2.1"
},
{
"_id" : ObjectId("5ea7dfcf33b735ec0ae6901a"),
"version" : "1.2.2"
},
{
"_id" : ObjectId("5ea7dfcf33b735ec0ae6901b"),
"version" : "1.2.3"
},
{
"_id" : ObjectId("5ea7dfcf33b735ec0ae6901c"),
"version" : "1.1.0"
},
{
"_id" : ObjectId("5ea7dfcf33b735ec0ae6901d"),
"version" : "1.1.1"
},
{
"_id" : ObjectId("5ea7dfcf33b735ec0ae6901e"),
"version" : "1.3.1"
},
{
"_id" : ObjectId("5ea7dfcf33b735ec0ae6901f"),
"version" : "1.1.2"
},
.
.
.
{
"_id" : ObjectId("5ea7dfcf33b735ec0ae6901f"),
"version" : "1.9.1"
},
{
"_id" : ObjectId("5ea7dfcf33b735ec0ae6901f"),
"version" : "1.10.1"
}
]
等等
我想得到一个基于版本排序的输出。
我可以在拆分版本后对其进行排序,但我不想采用这种方法。
如有任何帮助,我们将不胜感激。
提前致谢:)
您可以通过 collation
获得此行为首先创建一个索引:
.createIndex({version:1},{collation:{locale:"en",numericOrdering:true}})
并在需要排序时指定排序规则:
.find().sort({version:1}).collation({locale:"en",numericOrdering:true})
你可以在没有索引的情况下获得类似的行为,但对于非平凡的数据集,它确实使它表现得更好。