【问题标题】:Send array of objects in postman array always empty在邮递员数组中发送对象数组始终为空
【发布时间】:2019-11-14 04:35:10
【问题描述】:

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

【问题讨论】:

  • 我在架构中看到您在传递字符串数组时拥有 name: { type: String }
  • 你能说明你是如何将它保存在你的数据库中的吗?我们已经看到了架构和请求正文,请显示将请求正文保存到数据库集合的代码
  • @RaviShankarBharti,是的。这就是问题所在。只是不知道如何修复它,现在我看着它。 let category = new Category({ name: req.body.name });

标签: node.js mongodb postman


【解决方案1】:

问题是您没有将subcategory 保存在您的收藏中。

你可以试试:

let category = new Category({ 
    name: req.body.name, 
    subcategory : req.body. subcategory 
});

【讨论】:

  • 谢谢,这几乎是正确的,但是如何让数组中的每个项目都有自己的 ID?有了这个,我得到一个具有多个值的 _id
  • 每个项目都有自己的想法是什么意思?默认情况下,猫鼬会在每个对象级别插入_id,请尝试代码并检查您的数据库
  • 我已经为你添加了截图。值 1 应该有它自己的 _id,值 2 也应该有它自己的 _id
  • @user8463989 如果您需要每个子文档都有自己的 id,要么自己生成它,要么使其成为自己的集合
【解决方案2】:

我不知道我是否 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

相应地替换键和值。

希望这能指导您,或者其他人可能会发现它有用。

【讨论】:

    猜你喜欢
    • 2017-04-20
    • 1970-01-01
    • 2023-02-20
    • 1970-01-01
    • 2020-10-25
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多