2014-02-05 2 views
0

mongodb에서 intem을 확인하려면 어떻게해야하는지 알고 싶습니다. 아래에서 설명하는 함수는 db에 사용자를 삽입하고 사용자 이름이 있으면 삽입 전에 확인합니다.항목 수집 값 확인 mongodb

exports.adduser = function(db) { 
return function(req, res) { 


    var userName = req.body.username; 
    var userEmail = req.body.useremail; 
    var userCod = req.body.usercod; 


    var collection = db.get('usercollection'); 

    collection.insert({ 
     'username' : userName, 
     'email' : userEmail, 
     'cod' : userCod 

    }, function (err, doc) { 
     if (err) { 

      res.send('There was a problem adding the information to the database.'); 
     } 
     else { 
      res.location('userlist'); 
      res.redirect('userlist'); 
     } 
    }); 

} 
} 

답변

0
var collection = db.get('usercollection'); 
collection.count({username:username}, function(err, count){ 
    if(err){ 
    return callback(err); 
    } 
    if(count > 0){ 
    return callback('User already exists!'); 
    } 

    //do your insert operation 

}); 
0

나는 Node.js를 약 diddly 쪼그리고 모르지만, MongoDB의에서 조회를 찾기()와 findOne()로 Collection 개체에 있습니다. 사용자 이름을 가정하는 것은 "존재하는지 확인"명백한 방법은 당신이 중복을 삽입 할 수 없습니다 보장합니다 usernameunique index 추가하는 것입니다

if (collection.findOne({ "username" : userName }) != null) { 
    println("username " + userName + " exists!"); 
} 
0

과 같을 것이다, 레코드가 고유하게 만들기에 충분하다.

오류 처리 논리는 질문 설명에서 스케치 한 것과 유사합니다. username이 이미 존재하는 경우 삽입하려고 시도 할 때 예외가 있으며 err 문자열은 "E11000 중복 키 오류 ..."(위반하는 중복 키 포함)와 같을 것입니다.