MongoDB:我想将数组对象存储在集合中 [英] MongoDB: I want to store array object in collection

查看:23
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆