2017-08-12 4 views
0

mongojsを使用しています。大文字か小文字かにかかわらずクエリを返そうとしています。たとえば、私はこれを持っていますノード内の大文字と小文字の区別なしにmongoクエリを返す

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かどうかにかかわらず、ユーザーが返されることを望みます。

私はこれらの技術の両方に満足しているので、私はこれに最も近い方法を考えていません。

答えて

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' 
      }); 
     } 
    }); 
+0

を無視しますが、それより低い場合名前、これを行うと、まだユーザ名は、それが保存されている方法を同棲維持する方法はありますか? – Kalkrin

+1

@Kalkrin、他の方法はありません。あなたができることの1つは、常に大文字/小文字のユーザー名をデータベースに格納して、一貫性を持たせることです。固定小文字のデータがある場合は、検索文字列を大文字と小文字に変換して入力文字列を比較できます。 –

+0

この情報をありがとう。 – Kalkrin

関連する問題