javascript - MongoDB:如何创建一个具有对象数组作为字段的对象?

标签 javascript node.js json mongodb

我有这个架构:

const SingleExerciseSchema = new Schema({
    exerciseName: { type: String },
    setLog: [{
        weight: { type: Number },
        sets: { type: Number },
        reps: { type: Number },
    }],
});

然后我得到这样的数据,作为 json:

const DATA = [
    { exerciseName: "Squat",
      setLog: [
        {weight: 65, sets: 1, reps: 5},
        {weight: 55, sets: 2, reps: 5},
        {weight: 45, sets: 1, reps: 5},
      ]
    },
    { exerciseName: "Overhead Press",
      setLog: [
        {weight: 27.5, sets: 1, reps: 5}
      ]
    }
  ];

我想循环数据并从中创建我的 SingleExercise 对象。

像这样:

const exerciseObjectList = (req.body).map(
    (exerciseLog) => new SingleExercise({
      exerciseName: req.body.exerciseName,
      setLog: // stuck here
    })

但是,我不确定是否更新/访问 setLog 字段(语法方面)。我想要这样的东西:

const exerciseObjectList = (req.body).map(
    (exerciseLog) => new SingleExercise({
      exerciseName: req.body.exerciseName,
      setLog: {
        (req.body.setLog).map(
          (set) => {
            weight: set.weight,
            sets: set.sets,
            reps: set.reps,
          }
        )
      }
    })
  );

但这显然是错误的语法。

编辑:我的代码中实际上有一个愚蠢的错误,我在循环中编写了 req.body.exerciseName 而不是exerciseName。 另外,我刚刚去了

setLog: exerciseLog.setLog

并且它可以工作(而不是单独访问 setLog 中的每个字段)。 我仍然不知道如何单独访问每个字段,但现在我不需要这样做。

固定代码:

const exerciseObjectList = (req.body).map(
    (exerciseLog) => new SingleExercise({
      exerciseName: exerciseLog.exerciseName,
      setLog: exerciseLog.setLog,
    }));

最佳答案

我相信您可以映射 req.body 并在每个 new SingleExercise

中添加元素
const exerciseObjectList = req.body.map(exercise => new SingleExercise(exercise))

关于javascript - MongoDB:如何创建一个具有对象数组作为字段的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76710120/

相关文章:

node.js - 方法在完成函数执行之前返回值

javascript - Bootstrap TreeView 不起作用 - 传递的对象仍然没有输出

python - Databricks - Pyspark - 使用动态键处理嵌套的 json

javascript - 如何在数据表jquery中添加除操作列之外的列过滤

javascript - 停止多次点击时的子菜单动画

Javascript 数组的奇怪行为。全局声明无法保值

javascript - 事件驱动和并发问题?

javascript - 如何在javascript中将多个h1元素替换为h1,h2,h3,h4,h5,h6?

javascript - 在 Node.js 中需要模块的最佳方法

java - 如何使用 GSON 将 JSON 字段转换为 JAVA 映射