2015-11-12 27 views
6

ich mit mongodb wenn nickname und password überprüfen möchte ist true im Versuch, den $and Operator mit $regex zu verwenden, aber ich kann es nicht die Arbeit. Kann mir jetzt jemand eine Hand damit helfen;überprüfen Sie, ob Werte Match in 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) 
    }); 
}, 

Antwort

4

Dies wird es für Sie tun,

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

Wie erwähnen Sie nicht $regex als Argument $ne haben, aber Sie können 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

Fund Funktion nimmt zwei Argumente, zuerst ist immer falsch, so muss es 'Funktion (err, Daten) sein { wenn (err) werfen err; console.log (Daten) }); ' –

+0

Mit' Daten' als zweites Argument bekomme ich jetzt ein Array, aber es ist leer, ich denke, das bedeutet, dass keine Übereinstimmung gefunden wird. –

+0

Ja das ist es was es bedeutet – styvane

Verwandte Themen