Я взял несколько идентификаторов через MapReduce. Я отсортировал эти идентификаторы по некоторым критериям и теперь мне нужно получить эти объекты в таком порядке:
MyModel.find(ids)
Верно? Но он возвращает объекты не в порядке хранения идентификаторов. Похоже, это то же самое, что и
MyModel.where(:_id.in => ids)
, который не возвращает выбранные объекты в том же порядке, что и сохраненные идентификаторы.
Теперь я могу сделать это
ids.map{|id| MyModel.find(id)}
, которое будет делать работу, но это будет стучать базу данных много раз.
-121--1226835-Около половины примеров, которые я вижу для запросов Linq с использованием метода Any, делают это, применяя его к результатам вызова Where (), другая половина применяет его непосредственно к коллекции. Оба стиля всегда эквивалентны, или есть случаи, когда они могут вернуть разные результаты?
Мое тестирование подтверждает прежний вывод; но краевые случаи не всегда легко найти.
List<MyClass> stuff = GetStuff();
bool found1 = stuff.Where(m => m.parameter == 1).Any();
bool found2 = stuff.Any(m => m.parameter == 1);