2014-10-07 83 views
1

我有一个蒙戈集合与文档蒙戈排序

{a:1,b:[2,3,4]} 
    {a:2,b:[1,5,6]} 
    {a:3,b:[3,4,5]} 

我想通过字段B进行排序,这样的结果是

{a:2,b:[1,5,6]} 
    {a:3,b:[3,4,5]} 
    {a:1,b:[2,3,4]} 

当阵列由他们最高的元素进行排序。

任何想法?

回答

0

当您按数组字段进行排序时,文档按升序排序,使用每个文档元素的最小值进行排序,对于降序,文档是最大值。

因此,对于你的情况,它只是:

db.coll.find().sort({b: -1}) 
+0

但如果有领带说B:[1,5,6]和b:[3,4,6]在这种情况下,为了必须1st [1,5,6],因为5是下一个更高的元素,然后[3,4,6] – 2014-10-07 18:07:29

+0

@NeilKumar这是一个不同的问题,无法以这种方式处理。 – JohnnyHK 2014-10-07 18:09:07