Arhn - архитектура программирования

Параметр лимита монгоидов игнорируется

Я попытался получить последние N записей с уникальным значением (first_name).

Уже:

@users = User.all(:limit => 5, :sort => [:created_at, :desc]).distinct(:first_name)

почти работает..Но игнорирует ограничение и порядок сортировки
Также:

@users = User.limit(5).desc(:created_at).distinct(:first_name)

Игнорирует как 'limit', так и 'desc'

@users = User.limit(5)

Работает..

Что я делаю не так?
Будем очень признательны за любую помощь!

13.03.2012

Ответы:


1

Я немного поиграл с этим, и это лучшее, что я мог придумать.

Удачи.

@users = User.desc(:created_at).reduce([]) do |arr, user|
  unless arr.length == 5 || arr.detect{ |u| u.first_name == user.first_name }
    arr << user
  end
  arr
end
13.03.2012

2

Вы пытались использовать жемчужину разбиения на страницы, такую ​​как amatsuda/kaminari, и ограничивать результаты с помощью page().per()?

04.09.2012

3

И distinct, и count игнорируют команду limit в Mongoid. С count вы можете передать true (т.е. User.limit(5).count(true)), чтобы заставить его обратить внимание на область. К сожалению, насколько мне известно, такого трюка для отдельных не существует (см. docs/source здесь).

Если вы хотите просто взять первые 5 first_name, вы можете сделать это (не отдельно):

User.desc(:created_at).limit(5).map(&:first_name)

Это будет соблюдать ограничение, но по-прежнему загружать 5 полных объектов из базы данных (затем отбросить остальную часть объекта, чтобы дать вам полное имя). Если вам действительно нужно работать отдельно, вам лучше выбрать решение для агрегации.

Я не тестировал, но, похоже, это то, что вы ищете: https://stackoverflow.com/a/17568267/127311

12.05.2015

4

Я играл с некоторым результатом, я нашел это.

User.limit(2).count => 10   #but in array I found only two results
User.limit(2).to_a.count => 2 

Может быть limit дает правильный результат, но запрос count дает неправильный результат.

27.05.2016
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..