2017-04-06 149 views
0

我一直有这个问题一段时间。如何使用req.body将JSON数组数据保存到猫鼬?

我创建了一个mongoose模型,并且使用JSON和req.body通过邮差将数据保存到mongodb数据库的过程中获得了大量成功。

但是,我试图第一次使用数组,我遇到了麻烦。

(我用快递和BTW的Node.js)

我的服务器具有下列设置接收后路线:

router.post('/data', function(req, res){ 
    var data = new Data({ 
     name: req.body.name, 
     price: req.body.price, 
     array: [{ 
      name: req.body.array[0].name, 
      username: req.body.array[0].username, 
      bio: req.body.array[0].bio, 
      languages: [{language: req.body.array[0].languages[0].language}] 
     }]... 

我已经有和没有[0]每个阵列之前试过这种名称。所有不是数组的值都可以很好地保存到数据库中,但数组全都只有一个属性,那就是_id和之后的一堆乱码。

我的JSON是从我读正确的..

{ 
    "name": "Bill", 
    "price": 290, 
    "array": [{ 
     "name": "Danny", 
     "username": "dnnyboy", 
     "bio": "Helo hello", 
     "languages": [{"language": "English"}] 
    }],...(the JSON list continues) 

如何正确保存JSON数组数据转换成使用req.body猫鼬模式?我缺少什么语法?

+0

请显示您的架构。我怀疑模式定义和分配值的方式有问题。否则,无论你在做什么都应该起作用。 –

回答

-1
var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 
var model = new Schema({ 
name:{type: String}, 
... 
array:[], 
price:{type: Number} 
}) 
obj = {}; 
obj.name = 'xxx'; 
obj.array.push({...}); 
obj.price = 2; 
model.create(obj); 
req.body.xxx = model; 
+1

欢迎来到Stack Overflow!虽然此代码可能会回答这个问题,但提供关于_how_和/或_why_的附加[上下文](https://meta.stackexchange.com/q/114762)可以解决问题,从而提高答案的长期价值。它也不会提到为什么这个答案比其他答案更合适。 –

0

传入数据的形式req.body您展示

{ "name": "Bill", "price": 290, "array": [{ "name": "Danny", "username": "dnnyboy", "bio": "Helo hello", "languages": [{"language": "English"}] }] 

并使用

var data = new Data(req.body);