Как отсортировать коллекцию MongoDB по полю во встроенном документе, используя Mongoid? - PullRequest
5 голосов
/ 01 марта 2011

Я хочу выполнить этот запрос, используя Mongoid:

db.users.find().sort({'users.roles.name':1})

Как это будет выглядеть в Mongoid? Или, может быть, есть простой способ заставить Mongoid просто выполнить этот пользовательский запрос?

Ответы [ 3 ]

5 голосов
/ 01 марта 2011

Прежде всего, вы можете ответить на один простой вопрос: как отсортировать документы по массиву?Да, я тоже не знаю ..

Я полагаю, что вы можете сортировать по определенной роли, используя позиционный оператор:

db.users.find().sort({'roles.0.name':1})

Но я не уверен и не могу это проверитьПравильно знаешь и мб это не совсем то что тебе нужно.В любом случае вы можете проверить и вернуться с результатами, иначе я выясню это завтра.

4 голосов
/ 01 марта 2011

User.asc("roles.name") должен сделать это за вас.

1 голос
/ 21 сентября 2012

Это будет работать:

db.users.find().sort("{\"roles\":{\"name\":1}}");
...