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