2017-02-11 7 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 model = new Schema({ 
routerData:{ 
    "User-Name": { 
     "type": String, 
     "value": [] 
    }, 
    "NAS-IP-Address": { 
     "type": String, 
     "value": [] 
    }, 

}, 
}); 

私はこのコードをしようとしています:

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

}); 

私はこのエラーを取得しています

"message": "Cast to Object failed for value \"{\"User-Name\":{\"type\":\"string\",\ 
+0

あなたが経験している問題は何ですか?何を試しましたか?私はこのタイプのデータに問題で午前 –

答えて

1

スキーマに 'type'という名前のプロパティを設定する場合は、この 'type'のように指定する必要があります:{type:String}。ここで[文字列]

は実施例である:「値」:

また、あなたの値の配列はタイプを持っている必要があります。

'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"の値を置き換えてテストできますか? –

関連する問題