0

我是使用 Angular 作为前端的 MongoDB 新手。我正在尝试更新嵌套对象数组中的名称。

我的架构如下:

const mongoose = require("mongoose");

const projectDragDropSchema = mongoose.Schema({
  _idProject: mongoose.Schema.Types.ObjectId,
  projectTitle: { type: String, required: true },
  boards: [
    {
      _idBoard: mongoose.Schema.Types.ObjectId,
      boardTitle: { type: String, required: false },
      cards: [
        {
          type: new mongoose.Schema(
            {
              cardId: { type: mongoose.Schema.Types.ObjectId, required: true },
              cardTitle: { type: String, required: false },
            }
            // { minimize: false }
          ),
          required: false,
        },
      ],
      required: false,
    },
  ],
});

module.exports = mongoose.model("ProjectDragDrop", projectDragDropSchema);

我正在尝试更新cardTitle。我已经编写了多个更新,但找不到正确的更新。

路由器:

router.patch(
  "/updateProjectBoardCardName/:_idProject/:_id",
  projectBoardsCards.updateCardName
);

编码:

exports.updateCardName = (req, res) => {
  const idProject = req.params._idProject;
  const boardID = req.params._id;
  projectDragDropSchema
    .update(
      { _idProject: idProject, "boards._id": boardID },
      { cards: { $elemMatch: { _id: req.body.params } } },
      { $set: { "cards.$.cardTitle": req.body.params } }
    )
    .exec()
    .then((result) => {
      console.log(result);
      res.status(200).json(result);
    })
    .catch((err) => {
      console.log(err);
      res.status(500).json({
        error: err,
      });
    });
};

提前致谢。

4

0 回答 0