node.js에서 mongodb로 저장할 때, 중복되지 않게 저장하는 방법이 따로 있나요?

var mongoose = require('mongoose'),
    Schema = mongoose.Schema;

var schema = new Schema({
  name: {type: String, required: true, unique: true},
  img: {type: String, required: true},
  field: {type: String, required: true},
  amount: {type: String, required: true}
}, {
  toJSON: {virtuals: true },
  toObject: {virtuals: true}
});

var Recipe_name = mongoose.model('Recipe_name', schema);

module.exports = Recipe_name;

이렇게 mongoose 모듈을 사용해서 모델을 정의했는데,

unique: true 속성을 넣으면 디비에 저장할 때 중복 제거되서 저장되야 하는게 아닌가요?

자꾸 중복된 값이 저장되네요.... 다른 방법이 있나요?

for(var i in obj) {
    (function(i) {
        saveRecipeName(obj[i].name, obj[i].img, obj[i].field, obj[i].amount);
    })(i);
}
function saveRecipeName(name, img, field, amount) {
  var recipe_name = new Recipe_name({
    name: name,
    img: img,
    field: field,
    amount: amount
  });
  recipe_name.save(function(error) {
    if(error) {
      console.log(error);
    } else {
      console.log('save recipe_name: '+name);
    }
  });
}

저장하는 코드는 위와 같이 구현했습니다.

노드를 처음 써보는거라 좀 지저분 할 수 있어요ㅠㅠ

1답변

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.