2014-10-09 109 views
3

我是MongoDB的新手,我为我的项目使用了Node.js,Express 4和mongoose(mongoDB)。我坚持将表单数据保存到循环中的mongoDB中,我的模型也包含对象和对象数组。如何使用node.js中的循环将表单数据作为对象和对象数组保存到mongodb中?

型号

var Subscriber = new Schema({ 
    first_name: String, 
    emergency_contact_1: { 
     name: String, 
     number: [{ 
      type: String 
     }] 
    }, 
    residential: { 
     phone: String, 
     address: String, 
     ... 
    }, 
    medications: [ 
    { 
     visit_id: { type: Object }, 
     name: String, 
     .... 
    }], 
    food_allergies: [ 
     {type: String} 
    ], 
    .... 
}); 

控制器
我想用这种方式保存数据:使用上述循环

var subscriber = new Subscriber(); 

//Here I am trying to save all form's fields to mongoBD fields. 
for (var field in form_data) { 
    subscriber[field] = form_data[field]; 
} 

subscriber.save(function (err1, instance) { 
    if (err) { 
     console.log("error"); 
     return res.send("..."); 
    } 
    console.log("saved successfully"); 
} 

普通领域越来越正确保存,但是当对象或数组来了,它不会保存到mongoDB。

任何解决方案?或者通过循环向mongoDB模型插入/保存数据的其他方式?
任何帮助将不胜感激。谢谢.. ..!

+0

你尝试使用'Subscriber.create(form_data,callback)'? – 2014-10-09 21:50:19

+0

@AndrewVolchenko我已经尝试过,并且对于像first_name,Last_name和all.nbsp但单独的字段工作正常,但在mongoDB模型中我有对象和对象数组,因此当时它没有得到保存,因为form_data将作为individual.For例如,我怎样才能保存form_data像first_name,residential_phone,residential_address mongoDB模型,如first_name:'',residential:{phone:'',address:''} using loop?谢谢..!! – Divyesh 2014-10-10 06:28:14

回答

0

的NodeJS

var PersonSchema = new Schema({ 
    name: { 
     given: { 
      type: String, 
      required: true 
     }, 
     family: { 
      type: String, 
      required: true 
     } 
    }, 
    children: [PersonSchema] 
}); 

var Person = mongoose.model('Person', PersonSchema); 

app.post('/person', function (req, res) { 
    Person.create(req.body) 
     .then(function (created) { 
      console.log(created); 
      res.json(created.id); 
     }); 
}); 

客户

$.ajax({ 
    url: '/person', 
    type: 'POST', 
    data: { 
     name: { 
      family: 'Green' 
     }, 
     children: [{ 
      name: { 
       given: 'Matt', 
       family: 'Green' 
      } 
     }, { 
      name: { 
       given: 'Dave', 
       family: 'Green' 
      } 
     }] 
    } 
}) 

正如你所看到的,我有嵌套对象和数组。这对我工作正常:)

+0

你能告诉我那个req.body包含什么吗?如果它包含来自客户端的数据,那么它不会为我工作。因为在我的代码中,form_data包含单个字段的值不是object.and如果不是,则给出它的一个片段。谢谢。 – Divyesh 2014-10-10 12:50:46

+0

@Divyesh你能否提供你的'form_data'对象的expample? – 2014-10-10 14:35:15

+0

我的form_data对象看起来像{first_name:'divyesh',last_name:'dhokiya',resi_phone:'8147181480',resi_address,ec1_name:'abc',ec1_phone:'1234567890'}和mongodb模型就像上面我提到的问题。谢谢你.. !! – Divyesh 2014-10-10 16:01:12

相关问题