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

下门

我有一个看起来像这样的集合:

{
    "_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用来展开数组,对其进行排序,然后通过对condition进行分组来重新创建相同的数组_id

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

测试: mongoplayground

参考: 聚合

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章