我正在尝试使用Postman将对象数组发送到mongodb,但是子类别数组始终为空。
{
"name": "Category 1",
"subcategory": [
{
"name": "value 1, value2"
}
]
}
我的猫鼬模式:
const categorySchema = new mongoose.Schema({
name: {
type: String,
required: true,
minlength: 5,
maxlength: 255
},
subcategory: [
{
name: {
type: String
}
}
]
});
我的邮递员设置为“原始”,JSON(应用程序/ json)
答案 0 :(得分:1)
问题是您没有在集合中保存subcategory
。
您可以尝试:
let category = new Category({
name: req.body.name,
subcategory : req.body. subcategory
});
答案 1 :(得分:0)
我不知道我是否100%正确地回答了这个问题,但我想您正在尝试实现的是MongoDB中的以下结构:
"_id": "524b1894066496c34b",
"pickName": "Name",
"chosenAddress": [
{
"_id": "24b1894066496c34d",
"street": "Sample Street",
"number": "321"
},
{
"_id": "24b1894066496c34c",
"street": "Second One",
"number": "123"
}
如果是这种情况,有一种解决方法可以实现。在将其发送到后端(POST请求)之前,请确保将对象转换为对象数组。 我怀疑您在尝试发送对象而不是对象数组时遇到了同样的问题。 将此放入您的“提交句柄”:
var result = Object.keys(this.state.formControls).map(key => ({ key, value: this.state.formControls[key] }));
以上参考:How to transpose a javascript object into a key/value array
相应地替换键和值。
希望对您有所帮助,否则其他人可能会觉得有用。