Как можно отсортировать по алфавиту пользователей, использующих Метеор? - PullRequest
0 голосов
/ 29 ноября 2018

Я использую пакет учетных записей пользователей метеоров.Я хочу отсортировать всех пользователей по алфавиту в порядке возрастания.Моя структура коллекции выглядит следующим образом:

{
    "_id" : "6J3jjZB7DMRyPcTxh",
    "createdAt" : ISODate("2018-05-28T13:07:03.428Z"),
    "services" : {
        "password" : {
            "bcrypt" : "$2b$10$1W2g1Ceal39uUz0JVZ1JSuT1M9gKfKas.5VZ8ThH2Ga6cPp7SY6zO"
        },
        "resume" : {
            "loginTokens" : []
        }
    },
    "emails" : [ 
        {
            "address" : "vishnu@gmail.com",
            "verified" : false
        }
    ],
    "profile" : {
        "username" : "vishnu singh",
        "regPhone" : "8088***0297",
        "discount" : "66.66",
        "isDeleted" : false,
        "role" : "user"
    }
} 

Запрос:

    responseArray = Meteor.users.find({ 'profile.isDeleted': { $ne: true }, 'profile.role': { $ne: 'admin' } }, { sort: { 'profile.username': 1 }, skip: skip, limit: limit }).fetch();

Мой пропуск равен 0, а предел равен 25. Пропустить ограничение изменить во второй раз, чтобы пропустить 25 и ограничить 25. Какможно отсортировать всех пользователей по имени пользователя?пожалуйста помоги.

1 Ответ

0 голосов
/ 29 ноября 2018

Проблема с учетом регистра.Я думаю, что MongoDB не поддерживает поиск и сортировку с учетом регистра.Я использовал агрегацию и наконец получил решение.

  responseArray = Meteor.users.aggregate([{
                    $match: {
                        'profile.isDeleted': { $ne: true },
                        'profile.role': { $ne: 'admin' }
                    }
                },
                {
                    "$project": {
                        profile: 1,
                        emails: 1,
                        "insensitive": { "$toLower": "$profile.username" }
                    }
                },
                { "$sort": { "insensitive": 1 } },
                { "$skip": skip },
                { "$limit": limit }
            ])
...