2017-04-14 15 views
0
**model schema** 
var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 


var item = new Schema({ 
    name:{type: String, 
    required: true}, 
    price:{type: String} 
}) 


var object=new Schema({ 
name:{type: String, 
    required: true}, 
    items: [item] 
}); 

api.js、サーバーにデータを投稿schemaless mongooseにオブジェクトの配列を追加するにはどうすればいいですか?

router.post('/objectss', function(req, res){ 

    var object= new Object(); ** 

私は、配列内のオブジェクトの配列を保存することができますどのように

**

object.items.push({firstName: req.body.fname, lastName:  req.body.lname}); 
    object.name = req.body.name; 
     object.save(function (err) { 
     if(err) throw err; 

     res.json({success: true, message:'allahuakbar'}); 

    }); 

//保存されました!

});

angularjsコントローラ

$ scope.addProduct =関数(){

$scope.items.push({ 
    fname: $scope.item.fname, 
    lname: $scope.item.lname 

    }); 

    $scope.item = {}; 

}

$scope.submitx = function(inv, item){ 

     console.log(inv); 

     var object = { 
     name:inv.name, 
     fname:items.fname, 
    totalValue:  0 
    } 
      PostBlog.createInvoice(objects).then(function(data){ 
      console.log(data); 
     }); 
      $scope.objects= {}; 
     } 

このコードを見て、私を助けてください!数週間にわたって苦労している。オブジェクトの配列は次のようにあります[:ニンジン、「価格」:「名前」24「」:など]

+0

を使用してのご質問はこれを参照しますあなたがここで何をしようとしているのかを理解するのはとても難しいです。正しく理解していれば、オブジェクトを 'items'に格納したいのですが、それらのアイテムの正確なフィールドはわかりません。その場合、 'items:' item [item] 'のように定義するのではなく、' items'を 'items:[]'として定義してください。これで 'items'の中のオブジェクトを押すことができます。 –

答えて

0

は動けなくなる人は代わりの方法

router.post('/invoices', function(req, res){ //by making route in from    


    var invoice = new Invoice(); 

     for (var i = 0; i < req.body.length; i++) { 

invoice.items.push({name:req.body.fname[i].fname}); 
    } 
    invoice.name = req.body.name; 
    //invoice.items.insertMany(items, function(error, next) { 
     invoice.save(function (err) { 
     if(err) throw err; 

     res.json({success: true, message:'allahuakbar'}); 

    }); 



    // saved! 

}); 
関連する問題