Javascript MongoDB中未删除文档

Javascript MongoDB中未删除文档,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我正在使用NodeJs和MongoDB作为后端服务。我正在尝试删除MongoDB上的文档,但无法删除,但正在发送已删除的响应。 这就是我迄今为止所做的: const express = require('express'); const MongoClient = require('mongodb').MongoClient; const app = express(); var dburl = process.env.URL; app.post('/deleteRow', (req,re

我正在使用NodeJs和MongoDB作为后端服务。我正在尝试删除MongoDB上的文档,但无法删除,但正在发送已删除的响应。 这就是我迄今为止所做的:

const express = require('express');
const MongoClient = require('mongodb').MongoClient;

const app = express();

var dburl = process.env.URL;

app.post('/deleteRow', (req,res) => {

MongoClient.connect(dburl,{useNewUrlParser:true}, (err,client) => {

    var myquery = { _id:req.body.postId};

        if(err){

            console.log("Error:", +err);
        }
        else{

            var collect = client.db('abc').collection('xyz');

            collect.deleteOne(myquery, function(err,obj){

                   if(err){

                    console.log("Error".red, +err);
                   }
                   else{

                     res.send("Deleted");  
                   }

            });
        }

    });

});
让我知道我需要在上面的代码中更正什么。任何帮助都将不胜感激


谢谢

尝试将您的req.body.postId转换为ObjectId

差不多

var ObjectID = require(‘mongodb’).ObjectID;
var postId = new ObjectID(req.body.postId);

然后在你的deleteOne({})参数中使用postId

谢谢兄弟,它起作用了,但我想问一件事,在删除之前我们需要先将它转换为ObjectId吗?没问题!Mongo使用ObjectID作为其id字段。我通常发现,无论您使用哪个ID来删除文档(在您的例子中是req.body.postId),最好先将其转换为ObjectID,然后在查询中使用它。谢谢您的解释。