2014-10-07 6 views
1

У меня есть коллекция Монго с DocsМонго сортировать по полю массива

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

Я хочу, чтобы отсортировать по полю Ь, так что результат

{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

но что, если есть галстук сказать б: [1,5,6] и б: [3,4,6] в этом случае порядок должен быть 1-й [1,5,6], поскольку 5 - следующий более высокий элемент, а затем [3,4,6] –

+0

@NeilKumar. Это другой вопрос, и с этим нельзя справиться. – JohnnyHK

Смежные вопросы