Mongoid: извлечение объектов в порядке - PullRequest
0 голосов
/ 08 февраля 2011

Предположим:

упоминает = [ "2", "1", "3"]

unranked = User.where (: nickname.in => упоминания) .map

Выходные данные не соответствуют порядку в предоставленном массиве

вывод случайный => 3, 1, 2

я хочу, как в исходном массиве => 2, 1, 3

1 Ответ

1 голос
/ 10 апреля 2011

У меня была такая же проблема, я решил ее так:

mentions=["foo","bar","baz"]

ranked = User.where(:nickname.in => mentions).sort do |a, b|
  mentions.index(a.nickname) <=> mentions.index(b.nickname)
end

Не самое элегантное решение, так как я сортирую в приложении, а не в ядре базы данных, но эй .. оно работает ( в небольших списках ).

...