기본적으로 데이터를 삽입하기 전에 특정 데이터가 데이터베이스에 있는지 (mongodb 드라이버를 사용하는지) 확인하고 싶습니다. 따라서 데이터가 존재하는지 확인하기 위해 collection.findOne()
을 사용하고 있습니다. collection.insert()
이 수행하는 속성의 속성이 null입니다.mongodb에 데이터를 삽입하는 동안 조건을 추가하십시오.
분명히 내 코드가 논리에 따라 작동하지 않습니다. 제발 누군가 나를 밝혀주세요!
내 코드의 일부
:exports.addUser = function(req, res) {
var twitterId = req.body.provider;
var userEmail = req.body.email;
db.collection('users', function(err, collection) {
collection.findOne({'email':userEmail }, function(err, item){
if(item.email === null){
collection.insert({
'email': userEmail,
'provider': {
'twitter': {
'id': twitterId
}
}
}, function(err, result) {
if (err) {
res.send({'error':'An error has occurred'});
} else {
console.log('Success: ' + JSON.stringify(result[0]));
res.send(result[0]);
}
});
}else{
console.log("Email exits ");
}
});
});
}
내가 단서를 가지고 있다고 생각하면, 그것을 상상할 수있는 방법이있을 수 있습니다 ...? – nihulus
맞아, 당신이하고 싶은 것은'upsert : true '로''collection.update' (http://mongodb.github.com/node-mongodb-native/api-generated/collection.html#update)입니다. 옵션. – JohnnyHK