MongoDB:我想将数组对象存储在集合中 [英] MongoDB: I want to store array object in collection
本文介绍了MongoDB:我想将数组对象存储在集合中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我从前端获取数组对象,并想使用 NodeJS、Mongodb 将其保存在集合中.
I get array object from front side, and want to save it in collection using NodeJS, 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": []
},
},
});
我正在尝试使用此代码:
I am trying with this code:
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\",\
推荐答案
如果你想在你的架构中有一个名为type"的属性,你应该像这样指定它 'type': {type: String}.
If you want to have a property named 'type' in your schema you should specify it like this 'type': {type: String}.
你的值数组也应该有类型:"value": [String]
Also your value arrays should have type: "value": [String]
这是一个工作示例.
'use strict';
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var Schema = mongoose.Schema;
var schema = new Schema({
routerData: {
'User-Name': {
'type': {type: String},
'value': [String]
},
'NAS-IP-Address': {
'type': {type: String},
'value': [String]
},
},
});
var RouterData = mongoose.model('RouterData', schema);
var routerData = {
'User-Name': {'type': 'string', 'value': ['\u0000\u0000\u0000\u0000']},
'NAS-IP-Address': {'type': 'ipaddr', 'value': ['10.1.0.1']}
};
var data = new RouterData({routerData: routerData});
data.save();
这篇关于MongoDB:我想将数组对象存储在集合中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文