2015-01-20 72 views
0

IM在我的下面一个delete路线应用运行快报:快递/猫鼬REST麻烦

router.route('/lists/:id') 
.delete(function(req, res){ 
    Entry.remove({ 
     _id: req.params.id 
     }, function(err, list){ 
      if(err) 
       res.send(err) 

      list.title = req.body.title; 

      res.json({message: 'successfully deleted'}); 

      console.log('DELETE on /lists/'+ req.params.id); 
    }); 
}); 

这里是我的猫鼬模式:

var mongoose = require('mongoose'); 

var Schema = mongoose.Schema; 

var ListSchema = new Schema({ 
title: String 
}); 

module.exports = mongoose.model('List', ListSchema); 

当我的应用程序打delete路线,我的终端记录适当的语句,但模型不会从数据库中删除。当我打电话fetch的收集,所有的有记录仍然存在。

我使用在我的网站上不同的集合数据的一个非常类似的方法,并能正常工作,所以我真的在对为什么会发生亏损。

+2

我有一个愚蠢的问题:是_id正确的吗?你使用的是对象的mongo _id,而不是你创建的id属性,对吗? – SirBraneDamuj 2015-01-20 20:36:41

+0

我设置的ID在我的骨干模式 – redress 2015-01-20 20:57:55

+0

您可以编辑您的问题,以显示'req.params.id'而您希望该文件的值被删除? – JohnnyHK 2015-01-20 21:30:04

回答

0

猫鼬,如果未传递到架构构造一个_id字段默认分配每个模式的。 assiged类型是的ObjectId与MongoDBs默认行为

尝试传递_id为的ObjectId一致:

var ObjectId = require('mongoose').Types.ObjectId; 
var query = { _id: new ObjectId(req.params.id) }; 
+0

这不是必需的,因为Mongoose会为您执行此投射。 – JohnnyHK 2015-01-20 21:27:37