2017-05-12 5 views
0

現在、Mongooseを使用してAPIを使用してデータを配列でポストする際に問題が発生しています。APIを使用してオブジェクト配列をMongooseに移入

現在、このデータは私のコンソールに表示されます。

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

私は、タグ配列は、別々の値を使用してデータベースにプッシュする必要があるので、私は投稿することができます/後で使用するためにHTMLに、個々の単語をターゲットにしています。

現在、私は私に私のデータベースにこのデータを与えている私のデータベースのコレクションの中に全体の配列を追加します。

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

どのように配列内の各アイテムをIループ行うと、データベースに個別にそれを挿入しますか?

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]); 
       } 
関連する問題