Возврат запроса монго независимо от регистра в узле

Я использую mongojs и просто пытаюсь вернуть запрос независимо от верхнего или нижнего регистра. Например, у меня есть это

db.users.findOne({username: username, password: password}, function(err, docs) {
        if(docs) {
            currentUser.username = docs.username;
            res.render('home', {
                currentuser: currentUser
            });
        } else {
            res.render('index', {
                message: 'Invalid Credentials'
            });
        }
    });

имя пользователя и пароль принадлежат объекту пользователя и заполняются со страницы входа. Например, если имя пользователя было HankHill - я бы хотел, чтобы пользователь возвращался, будь то hankhill или HankHill в базе данных.

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


person Craig    schedule 12.08.2017    source источник


Ответы (1)


Вы можете сделать запрос примерно так. он будет игнорировать случаи

db.users.findOne({username: { $regex: new RegExp("^" + username + "$", "i")}, password: password}, function(err, docs) {
        if(docs) {
            currentUser.username = docs.username;
            res.render('home', {
                currentuser: currentUser
            });
        } else {
            res.render('index', {
                message: 'Invalid Credentials'
            });
        }
    });
person Manish Kumawat    schedule 12.08.2017
comment
Это работает, но имя в нижнем регистре. Есть ли способ сделать это и при этом сохранить имя пользователя в том виде, в котором оно хранится? - person Craig; 17.08.2017
comment
@Kalkrin, другого пути нет. Одна вещь, которую вы можете сделать, это всегда хранить имена пользователей в верхнем/нижнем регистре в базе данных, чтобы вы могли иметь согласованность. Если у вас есть данные в фиксированном регистре, вы можете сравнить входную строку, преобразовав строку поиска в верхний/нижний регистр. - person Manish Kumawat; 17.08.2017