2017-05-12 1 views
0

현재 몽구스를 사용하여 API를 통해 배열에 내 데이터를 게시하는 문제가 있습니다. API를 통해 객체 배열을 몽구스에 채우기

현재이 데이터는 내 콘솔에 표시됩니다 :

taskName: 'name', 
    word: 'word2', 
    wordDesc: 'description', 
    tag: [ { text: 'word0' }, { text: 'word1' }, { text: 'word2' } ] } 

나는 별도의 값을 사용하여 데이터베이스에 푸시 할 수있는 태그의 배열이 필요합니다, 그래서 나중에 사용을 위해 HTML로 각 단어/게시 타겟팅 할 수 있습니다.

현재 내 데이터베이스에 저에게이 데이터를주고 내 데이터베이스 콜렉션으로 전체 배열을 추가 :

"word": "[object Object],[object Object],[object Object],[object Object]" 

어떻게 내 배열의 각 항목을 통해 내가 루프를 수행하고 데이터베이스에 개별적으로 삽입?

API 코드

router.post('/task', function (req,res) { 
      var task = req.body.tag; 
      var taskDesc = req.body.wordDesc; 
      var taskName = req.body.taskName; 
      console.log(req.body); 
      var newTask = new Task ({ 
       tags:[{word:task}], 
       wordDesc: taskDesc, 
       taskName: taskName 
      }); 


      newTask.save(function(err){ 
       if (err) { 
        return res.send(err); 
       } 
       return res.json(newTask); 
      }); 
     }); 

MongoDB의 스키마

var taskSchema = mongoose.Schema({ 
    tags: [{ 
     word  : {type: String, default: ""} 
    }], 

    wordDesc : {type: String, default: ""}, 
    taskName : {type: String, default: ""} 
}); 

답변

0

나는 당신의 문제를 이해한다면 당신은 이런 식으로 작업을 수행 할 수 있습니다

... 
    var newTask = new Task(); 
    newTask.wordDesc = taskDesc; 
    newTask.taskName = taskName; 

    wordTasks.forEach(word=>{ 
    newTask.tags.push(word); 
    }); 

    newTask.save(function(err){ 
    ... 
0

우리는 몇 가지 그리기 결국 영감 f rom 예제와 코드는 우리가 원했던 것처럼 이것과 기능을 보았습니다.

var word = req.body.tag; 
     var taskDesc = req.body.wordDesc; 
     var taskName = req.body.taskName; 
     console.log(req.body); 

     var newTask = new Task();   
      newTask.taskName = taskName; 
      newTask.wordDesc = taskDesc; 
      for (var i = 0; i < word.length; i++) { 
      console.log(word[i].text); 
      newTask.tags.push(word[i]); 
       } 
관련 문제