【问题标题】:How to add new property to object that I findByID in Mongoose?如何将新属性添加到我在 Mongoose 中 findByID 的对象?
【发布时间】:2022-01-07 19:13:05
【问题描述】:

我在 mongodb 中有一个对象,我想添加一个名为 players 的新播放器。

我已经使用 findByIdAndUpdate 创建了一个路由器,但无法成功将 new player 添加到我的 players 属性中。这就是我的方法创造了它。它不是添加新属性,而是更新旧属性。我查看了 mongoose 文档并查看了 StackOverflow,我找不到如何操作。

router.post("/addPlayer/:id", (req, res) => {
  const id = req.params.id;
  Item.findByIdAndUpdate(
    id,
    { players: { name: "mehmet", age: 25 } },
    function (err, docs) {
      if (err) {
        console.log(err);
      } else {
        console.log("Updated User : ", docs);
      }
    }
  );
});

这里我想添加新的播放器,例如,

 {player:'ali',age:22}

【问题讨论】:

    标签: node.js mongodb mongoose mongoose-schema


    【解决方案1】:

    Players 是一个数组,如果你想添加新玩家,你可以像这样使用$push

    router.post("/addPlayer/:id", (req, res) => {
      const id = req.params.id;
      Item.findByIdAndUpdate(
        id,
        { $push: { players: { name: "mehmet", age: 25 } }},
        function (err, docs) {
          if (err) {
            console.log(err);
          } else {
            console.log("Updated User : ", docs);
          }
        }
      );
    });
    

    如果您想更新第一个索引,您可以查看here 以供参考。

    【讨论】:

      【解决方案2】:

      因为它是一个数组,你可以简单地做一个pushsave

      【讨论】:

        猜你喜欢
        • 2015-11-15
        • 1970-01-01
        • 2020-04-20
        • 2011-11-23
        • 2018-12-22
        • 1970-01-01
        • 2015-09-21
        • 2015-11-10
        • 2014-02-19
        相关资源
        最近更新 更多