2017-02-11 59 views
0

我從前方得到數組對象,並希望使用的NodeJS,MongoDB的將其保存在收藏。的MongoDB:我想存儲陣列對象集合

我的目標是:

routerData={"User-Name": 
    {"type":"string","value":["\u0000\u0000\u0000\u0000"]}, 
"NAS-IP-Address": 
    {"type":"ipaddr","value":["10.1.0.1"]} 
}, 

我的收藏模式是:

var obj = new objModel(req.body); 
obj.routerData = req.body.routerData; 
obj.save(function (err, result) { 

}); 

我收到此錯誤:

var model = new Schema({ 
routerData:{ 
    "User-Name": { 
     "type": String, 
     "value": [] 
    }, 
    "NAS-IP-Address": { 
     "type": String, 
     "value": [] 
    }, 

}, 
}); 

我用這個代碼試圖

"message": "Cast to Object failed for value \"{\"User-Name\":{\"type\":\"string\",\ 
{類型:字符串}
+0

那麼究竟是什麼問題,你遇到?你嘗試了什麼? –

回答

1

如果你想有一個叫做架構中的「類型」屬性,你應該像這樣的「類型」指定。

而且你的價值陣列的類型應該是:「值」:[字符串]

這裏是一個工作示例。

'use strict'; 
 

 
var mongoose = require('mongoose'); 
 
mongoose.connect('mongodb://localhost/test'); 
 
var Schema = mongoose.Schema; 
 

 
var schema = new Schema({ 
 
\t routerData: { 
 
\t \t 'User-Name': { 
 
\t \t \t 'type': {type: String}, 
 
\t \t \t 'value': [String] 
 
\t \t }, 
 
\t \t 'NAS-IP-Address': { 
 
\t \t \t 'type': {type: String}, 
 
\t \t \t 'value': [String] 
 
\t \t }, 
 

 
\t }, 
 
}); 
 

 
var RouterData = mongoose.model('RouterData', schema); 
 

 
var routerData = { 
 
\t 'User-Name': {'type': 'string', 'value': ['\u0000\u0000\u0000\u0000']}, 
 
\t 'NAS-IP-Address': {'type': 'ipaddr', 'value': ['10.1.0.1']} 
 
}; 
 

 
var data = new RouterData({routerData: routerData}); 
 
data.save();

+0

我在麻煩這種類型的數據: VAR routerData = { 「的Attr-26.14559.10」:{ 「類型」: 「個八比特組」, 「值」:[ 「0x00000002」]}} –

+0

@HardikMandankaa有什麼問題? –

+0

你可以嘗試更換「routerData」值和測試? –