我的文档没有从集合中删除。我也没有收到任何错误。 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/