2017-04-06 146 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);