【问题标题】:How to pull data from mongodb using nodejs?如何使用nodejs从mongodb中提取数据?
【发布时间】:2020-12-26 13:04:20
【问题描述】:

我在 mongoDb 中有如下数据:

{
 "_id": "5fe1cf1230ecc74464f07c7e"
"subjects": [
    "english",
    "math",
    "social",
    "science"
  ],
}

我想从主题中删除单个数据,我编写了如下代码:

exports.reldata = async (req, res) => {
const subject = req.body.subjects;
console.log(req.params.id);
SingleCourse.find({ _id: req.params.id }).updateOne(
{
  $pull: { subjects: [...subject] },
},
(err, doc) => {
  console.log("from pull", doc);
  }
 );
}

在控制台中,它会返回一条成功消息,如下所示:

from pull { n: 1, nModified: 1, ok: 1 }

但是当我查看我的数据库时,数据仍然存在。它不会删除数据。请任何人都可以帮助解决我的问题。 我正在使用 nodejs、express、mongodb。我正在使用邮递员发送数据

【问题讨论】:

    标签: javascript node.js mongodb express


    【解决方案1】:

    下面是我的工作代码

    SingleCourse.update( 
      { _id: req.params.id},
      {  $pull: { subjects: [...subject] } },
      { safe: true },
      function callback(err, obj) {
         console.log(obj);
      }
    );
    
    

    【讨论】:

      【解决方案2】:

      是的,$pull 是一个数组更新运算符,我相信它不能与updateOne() 一起使用。我们只需要使用.update()。如果要使用updateOne(),则需要使用$set/$unset 字段运算符来修改值。请参考下面的updateOne() 文档。第一个参数只是一个过滤器,只有第二个参数携带更新的信息。

      https://docs.mongodb.com/manual/reference/method/db.collection.updateOne/

      【讨论】:

        【解决方案3】:

        你可以像这样达到你想要的结果:

        exports.reldata = async (req, res) => {
          const subject = req.body.subjects;
          const filter = { _id: req.params.id };
          const updateDoc = {
            $set: {
              subjects: subject,
            },
          };
          const result = await SingleCourse.updateOne(filter, updateDoc);
          console.log(
            `${result.matchedCount} document(s) matched the filter, updated ${result.modifiedCount} document(s)`
          );
        };
        

        【讨论】:

          猜你喜欢
          • 2019-07-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-12-26
          • 2019-12-27
          • 2019-04-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多