node.js - 我的文档在 NodeJS 的 mongodb 中没有被删除

标签 node.js mongodb mongoose

我的文档没有从集合中删除。我也没有收到任何错误。 http 事务完全没问题。

// Node Module dependencies
var express = require('express');
var router = express.Router();

// Local Module dependencies
var common = require('./common.js');
//var request = require('request');


var db =common.conn;
var Question = require('../model/questions');


router.route('/postquestion')
    .post(function (req, res) {

        var item = new Question(req.body);
        //console.log(item);

        //=======calling postdata method=====//
        postQuestion(item, function (result) {

            res.json(result);
        });

    });

router.route('/deletequestion')
    .delete(function (req, res) {
    console.log(req.body._id);

    Question.collection.deleteOne({_id:req.body._id},function(err,question){
        if(err) throw err;
        console.log('the document is deleted')
        res.send(question);

    });

})
function postQuestion(item, fn) {
    item.save(function (err) {
        if (err) console.log(err);
        fn(item);
    });
}
module.exports = router;

postquestion 功能运行良好,数据库正在更新。当我使用 postman 提出删除请求并发送以下 json 时。

{
    "_id": "57bc442c4925180b067f075b"
}

我收到如下回复。

   {
   "ok": 1,
   "n": 0
   }

当我检查 robomongo 中的数据库时,我发现该文档未删除。我是不是错过了一些事情要做。还有什么要做的吗......!

最佳答案

MongoDB 使用 ObjectID 来索引文档。

如果你想使用 Mongo ID 删除对象,你必须实例化一个 ObjectID。

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

var ObjectID = require('mongodb').ObjectID;
router.route('/deletequestion')
    .delete(function (req, res) {
    console.log(req.body._id);
    const _id = new ObjectID(req.body._id);
    Question.collection.deleteOne({_id:_id},function(err,question){
        if(err) throw err;
        console.log('the document is deleted')
        res.send(question);

    });

})

关于node.js - 我的文档在 NodeJS 的 mongodb 中没有被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39102845/

相关文章:

javascript - 类型错误 : resolver is not a function

node.js - Jade(PUG) 到 Handlebars,加载 SVG 图像的辅助功能问题

node.js - 转换后无法重定向视频流(mkv 到 mp4)

node.js - Mongoose : Update not working

javascript - 指的是一个值,但在这里被用作类型

node.js - Mongoose 模型 $in 查询不起作用

node.js - ( Mongoose )如何从 session 中获取 user._id 以便发布包含此 user._id 的数据

javascript - 如何在没有临时变量的情况下扩展方法(猴子补丁)?

javascript - Nodejs Router 需要函数但得到一个对象

mongodb - 在查询中可以传递给 MongoDB '$in' 运算符的数组元素的数量有什么限制?