2015-11-12 12 views
6

Chcę sprawdzić z mongodb jeśli nickname i passwordtrue im próbuje użyć operatora $and z $regex ale nie mogę pracować. Czy ktoś może mi pomóc, że ręka z nim ma to;Sprawdź czy wartości Matchs w MongoDB

checkNickname: function(nickname, password){ 
    var reNick = new RegExp(nickname, "i"), 
     rePass = new RegExp(password, "i"); 
    getProfile.find({ $and : [{ 
     nickname: { $ne: { $regex: reNick } } }, 
     { password: { $ne: { $regex: rePass} } } 
    ]}, function(data){ 
     console.log(data) 
    }); 
}, 

Odpowiedz

4

to zrobi to za ciebie,

checkNickname: function(nickname, password){ 
     var reNick = new RegExp("/^" + nickname + ".*/", "i"), 
      rePass = new RegExp("/^" + password + ".*/", "i"); 
     getProfile.find({ 
        nickname: { $not: reNick }, 
        password: { $not: rePass } 
      }, function(err, data) { 
      console.log(data) 
     }); 
    } 
1

Jak wymienić nie można mieć $regex jako argument $ne ale można negate your regex.

checkNickname: function(nickname, password){ 
    var reNick = RegExp("^((?!"+nickname+").)*$", "i"); 
    var rePass = new RegExp("^((?!"+password+").)*$", "i"); 
    getProfile.find({ nickname: reNick, password: rePass }, function(err, data) { 
     console.log(data) 
    }); 
}; 
+2

funkcja find przyjmuje dwa argumenty, pierwszy jest zawsze błędem, więc musi to być 'funkcja (err, data) { jeśli (err) wyrzuci err; console.log (dane) }); ' –

+0

Z' danymi' jako drugim argumentem otrzymuję teraz tablicę, ale jej puste, myślę, że oznacza to, że nie znaleziono żadnego dopasowania. –

+0

Tak, to właśnie to oznacza – styvane

Powiązane problemy