对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" } } }
])
测试:
参考:非常感谢。我知道一定是一些简单的事情让我不知所措:)