2015-09-07 3 views
1

Я пытаюсь отобразить пользователя по номеру своего регистрационного номера. Чтобы дать конкретный пример, я хочу отобразить «Вы пользователь 7 из 7,182». Я легко могу получить 7 182 (общее количество пользователей). Я не могу понять, как публиковать только номер заказа для регистрации отдельного пользователя.Получить порядковый номер регистрации пользователя в meteor

+0

Несомненно, вы сохраняете каждого пользователя с инкрементирующим ID? Просто используйте это? –

+1

Йо может посмотреть на их создателя. что-то вроде select count (*) from (выберите createate от пользователя, где createdate <= созданный пользователем) –

+0

@SameerNaik Без правильной индексации, которая в конечном итоге приведет к повреждению сервера, не так ли? –

ответ

0

Один из подходов состоит в том, чтобы использовать счетчик коллекции через auto incrementing sequence field, чтобы сгенерировать счетчик, который будет храниться как свойство для каждой пользовательской записи.

Например, вы могли бы создать коллекцию счетчика и получить последнюю последовательность с помощью:

Counters.findAndModify({ 
    query: {type: "user"}, 
    update: {$inc: {seq: 1}}, 
    new: true, 
    upsert: true 
}).seq; 

Затем можно назначить результирующую последовательность к свойству на вновь созданного пользователя. Для этого подхода требуется пакет, который включает findAndModify (https://github.com/fongandrew/meteor-find-and-modify).

Конечно, это решение применимо только к вновь созданным пользователям, если вы не вручную назначили всех существующих пользователей счетчиком.

Если вы назначили результат последовательности для свойства вашего пользователя, например userNumber, вы можете просто опубликовать это свойство.

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