【发布时间】:2015-03-23 17:20:45
【问题描述】:
我正在尝试测试具有嵌套字段的 mongoose 架构的帖子,但我只能在级别 1 和级别 2 中的第一个字段。例如:
我有一个可以包含多个 IP 地址和多个子网的网络模型。当我将查询放入 Postman 时,它允许我创建多个 IP 地址和多个子网(很棒),但我无法定义类型字段?
Mongoose 架构:
var mongoose = require('mongoose'), Schema = mongoose.Schema, ObjectId = mongoose.Schema.ObjectId;
var networkSchema = module.exports = mongoose.model('Network', {
network_id:ObjectId,
location: String,
hostname: String,
device: String,
model: String,
ipAddress: [ipaddressSchema],
subnets: [subnetSchema],
iosVersion: String,
softwareImage: String,
serialNumber: String,
});
var ipaddressSchema = Schema ({
ipAddress: String,
type: String,
});
var subnetSchema = Schema ({
range: String,
type: String,
});
控制器:
var Network = require('../models/network');
module.exports.create = function (req, res) {
var network = new Network(req.body);
network.save(function (err, result) {
res.json(result);
});
}
module.exports.list = function (req, res) {
Network.find({}, function (err, results) {
res.json(results);
});
}
邮递员查询:
邮递员结果:
我想要:
{
"__v": 0,
"location": "London Office",
"hostname": "lon-asa-01",
"device": "Switch-MLS",
"model": "Cisco 3750",
"softwareImage": "1.2",
"serialNumber": "123456",
"_id": "5510495c1d40ef965d7d1cec",
"subnets":[
["range" : "10.0.100.0/24", "type" : "Client" ],
["range" : "10.0.101.0/24", "type" : "Server" ],
],
"ipAddress": [
["ipAddress" : "10.0.100.1", "type" : "Inside" ],
["ipAddress" : "10.0.101.254", "type" : "Outside" ],
]
}
【问题讨论】:
-
以原始格式发布表单,您可以将其格式化为 JSON,这样您就可以嵌套属性。
-
AndreiC,“我想要”部分就是一个例子。你能确认嵌套属性的 json 语法吗?
标签: javascript mongodb express mongoose