1

MongoDB 提供了一个非常有用的$sort修饰符来与$push操作一起使用,但不幸的是,我似乎只能要求它通过命名键对我的元素进行排序——我没有。
另一种可能的选择是 sort 函数:sort({'array.0': 1})source,但是如果我在数组中有一个数组怎么办?

我在集合中的文档结构如下:

{
"_id" : 123456,
"v" : [ 
    [ 
        some id, 
        some score
    ], 
    [ 
        "456456", 
        1.5
    ], 
    [ 
        "654645", 
        43
    ],
    ...
]
}

我想v按每个子数组的分数(第二个元素)对数组进行排序。

所以使用$sort:我不能使用键名

'$push': {
    'v': {
        '$each': [[id, score]],
        '$sort': {???: -1},
    }
}

并使用sort():我不能使用数组数组:

sort({'v.???.0': -1})

有什么我遗漏的东西,还是有另一种方法可以在获取文档、排序和替换的情况下进行这种排序?那将是一个非常耗时的操作。谢谢!

4

0 回答 0