对MongoDB中文档中的数组元素进行排序?

对MongoDB中文档中的数组元素进行排序?,mongodb,mongodb-query,aggregation-framework,Mongodb,Mongodb Query,Aggregation Framework,我有一个像这样的收藏: { "_id" : "customer1", "verarray" : [ "10.5.0-50_0", "11.5.0-30_0" ] } { "_id" : "customer2", "verarray" : [ "11.0.0-30_0", "11.5.0-80_0", "12.5.0-111_0", "13.3.0.2

我有一个像这样的收藏:

{
    "_id" : "customer1",
    "verarray" : [ 
        "10.5.0-50_0", 
        "11.5.0-30_0"
    ]
}
{
    "_id" : "customer2",
    "verarray" : [ 
        "11.0.0-30_0", 
        "11.5.0-80_0", 
        "12.5.0-111_0", 
        "13.3.0.21_0.31125", 
        "13.5.0-20_0"
    ]
}
{
    "_id" : "customer3",
    "verarray" : [ 
        "11.5.0-95_0", 
        "12.6.0.131_0.33392", 
        "10.0.0-5_0", 
        "11.5.0.20_0.22028", 
        "12.6.0.131_0.33392"
    ]
}
如您所见,第三个客户阵列不正常。我想对每个
verarray
进行排序。我该怎么做?
谢谢

您可以使用
$unwind
展开数组,对其排序,然后根据条件
\u id
分组重新创建相同的数组

db.collection.aggregate([
  { $unwind: "$verarray" },
  { $sort: { verarray: 1 } }, // Using 1 for asc & use -1 for desc order
  { $group: { _id: "$_id", verarray: { $push: "$verarray" } } }
])
测试:


参考:

非常感谢。我知道一定是一些简单的事情让我不知所措:)