我的文档未从集合中删除。我也没有收到任何错误。 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函数工作正常,数据库正在更新。当我使用邮递员提出删除请求并发送以下json。
{
"_id": "57bc442c4925180b067f075b"
}
我得到了如下的答复。
{
"ok": 1,
"n": 0
}
当我在robomongo中检查数据库时,我看到文档未被删除。我错过了要做的事情。还有别的事情要做.....!
答案 0 :(得分:2)
MongoDB使用ObjectID索引文档。
如果要使用Mongo ID删除对象,则必须实例化ObjectID。
https://docs.mongodb.com/manual/reference/method/db.collection.deleteOne/
:set nopaste
答案 1 :(得分:1)
如果没有任何效果,请尝试以下操作...
app.delete("/api/posts/:id",(req,res,next)=>
{
Post.deleteOne({_id: req.param.id})
.then(result=>{
console.log(result);
});
//console.log('Post Deleted on node JS');
res.status(200).json({message: 'Delete'});
});
答案 2 :(得分:0)
如果你使用的是MongooseJS,你只需要做com.android.support:support-fragment:24.2.0
Question.collection ...`的事情。除非你的模型中有不同的连接方式