发送邮递员数组中的对象数组始终为空

时间:2019-07-03 13:10:03

标签: node.js mongodb postman

我正在尝试使用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)

enter image description here

2 个答案:

答案 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

相应地替换键和值。

希望对您有所帮助,否则其他人可能会觉得有用。