最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

为什么文件没有从mongodb数据库中删除?

IT培训 admin 3浏览 0评论

为什么文件没有从mongodb数据库中删除?

我正在尝试从mongodb数据库中删除文档,但它无法正常工作。我不明白为什么因为控制台没有给出任何错误并正确显示查询对象。但是,当我查看数据库时,相应的文档仍然存在。

网址 http://localhost:7000/delete/5c641f44923cf17c1cfe1002

安慰

{ _id: '5c641f44923cf17c1cfe1002' }
1 document deleted

Server.js:

const express = require('express');
const app = express();
const bodyParser = require('body-parser');
var urlencodedParser = bodyParser.urlencoded({ extended: false });

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



app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());
// Connection URL
const url = "mongodb://localhost:27017/DataBaseName";

app.listen(7000);

app.set('view engine', 'ejs');

// Express routes

//Default routes
app.get('/', function(req, res){

    MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
        if (err) throw err;
        var dbo = db.db("DataBaseName");
        dbo.collection("customers").find({}).toArray(function(err, result) {
            if (err) throw err;
            console.log(db);
            db.close();
            res.render('index', {result:result});
        });
    });
});
//Submit button route
app.post('/submitData',urlencodedParser,function(req, res){

    MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
      if (err) throw err;
      var dbo = db.db("DataBaseName");
      dbo.collection("customers").insertOne(req.body, function(err, res) {
        if (err) throw err;
        console.log("1 document inserted");
        db.close();
      });
    });
    res.redirect("/");
});


// var _mongodb = require('mongodb');
//  var ObjectId = mongodb.ObjectId;

app.get('/delete/:id', function (req, res) {
    MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
      if (err) throw err;
      var dbo = db.db("DataBaseName");
      dbo.collection("customers").deleteOne({_id: new ObjectId(req.params.id) }, function(err, res) {
        if (err) throw err;
        // console.log({_id: req.params.id});
        console.log("1 document deleted");
        db.close();
      });
    });
res.redirect("/");
});

// Catch all other routes
app.get('*',function(req, res){
    res.send("You lost Niqqa!");
});

数据库中的条目这就是mongodb罗盘社区的样子。

_id:ObjectId("5c641f44923cf17c1cfe1002")
name:"Please delete me"
priority:"high"
回答如下:

您应该将请求中的id转换为ObjectId,因为它现在作为字符串传递,与文档不匹配。

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

app.get('/delete/:id', function (req, res) {
    MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
      if (err) throw err;
      var dbo = db.db("DataBaseName");
      dbo.collection("customers").deleteOne({_id: new ObjectId(req.params.id) }, function(err, res) {
        if (err) throw err;
        console.log({_id: req.params.id});
        console.log("1 document deleted");
        db.close();
      });
    });
res.redirect("/");

您还可以从删除操作中检查res以了解是否有任何文档被删除。 res应该有基于deletedCount的mongodb node driver docs。

为什么文件没有从mongodb数据库中删除?

我正在尝试从mongodb数据库中删除文档,但它无法正常工作。我不明白为什么因为控制台没有给出任何错误并正确显示查询对象。但是,当我查看数据库时,相应的文档仍然存在。

网址 http://localhost:7000/delete/5c641f44923cf17c1cfe1002

安慰

{ _id: '5c641f44923cf17c1cfe1002' }
1 document deleted

Server.js:

const express = require('express');
const app = express();
const bodyParser = require('body-parser');
var urlencodedParser = bodyParser.urlencoded({ extended: false });

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



app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());
// Connection URL
const url = "mongodb://localhost:27017/DataBaseName";

app.listen(7000);

app.set('view engine', 'ejs');

// Express routes

//Default routes
app.get('/', function(req, res){

    MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
        if (err) throw err;
        var dbo = db.db("DataBaseName");
        dbo.collection("customers").find({}).toArray(function(err, result) {
            if (err) throw err;
            console.log(db);
            db.close();
            res.render('index', {result:result});
        });
    });
});
//Submit button route
app.post('/submitData',urlencodedParser,function(req, res){

    MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
      if (err) throw err;
      var dbo = db.db("DataBaseName");
      dbo.collection("customers").insertOne(req.body, function(err, res) {
        if (err) throw err;
        console.log("1 document inserted");
        db.close();
      });
    });
    res.redirect("/");
});


// var _mongodb = require('mongodb');
//  var ObjectId = mongodb.ObjectId;

app.get('/delete/:id', function (req, res) {
    MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
      if (err) throw err;
      var dbo = db.db("DataBaseName");
      dbo.collection("customers").deleteOne({_id: new ObjectId(req.params.id) }, function(err, res) {
        if (err) throw err;
        // console.log({_id: req.params.id});
        console.log("1 document deleted");
        db.close();
      });
    });
res.redirect("/");
});

// Catch all other routes
app.get('*',function(req, res){
    res.send("You lost Niqqa!");
});

数据库中的条目这就是mongodb罗盘社区的样子。

_id:ObjectId("5c641f44923cf17c1cfe1002")
name:"Please delete me"
priority:"high"
回答如下:

您应该将请求中的id转换为ObjectId,因为它现在作为字符串传递,与文档不匹配。

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

app.get('/delete/:id', function (req, res) {
    MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
      if (err) throw err;
      var dbo = db.db("DataBaseName");
      dbo.collection("customers").deleteOne({_id: new ObjectId(req.params.id) }, function(err, res) {
        if (err) throw err;
        console.log({_id: req.params.id});
        console.log("1 document deleted");
        db.close();
      });
    });
res.redirect("/");

您还可以从删除操作中检查res以了解是否有任何文档被删除。 res应该有基于deletedCount的mongodb node driver docs。

发布评论

评论列表 (0)

  1. 暂无评论