2016-03-04 56 views
0

这是我第一次尝试删除MongoDB数据库中的数据。我松散地按照本教程(只是删除部分)无效,https://www.airpair.com/javascript/complete-expressjs-nodejs-mongodb-crud-skeleton。我只想删除所请求国家中的所有请求人员。我的所有其他请求都能正常工作,所以我只会发布我知道不工作的代码,其他一切都很好。用多参数Mongoose删除/删除

编辑 我在日志中得到的错误是“404未找到”。当测试W /邮差我得到的回应是,“无法删除/ deletepeople/USA /约翰”

app.delete('deletepeople/:country/:name', function(req, res) { 
     var countryReq = req.params.country; 
     var nameReq = req.params.name; 
     peopleModel 
      .find({"country":countryReq}, function(err, country) { 
       country.find({"name": nameReq}, function (err, person) { 
         person.remove(function (err, person) { 
          if (err) { 
           console.log(err); 
           res.status(500).send(); 
          } 
          return res.status(200).send(); 
         }) 
       }) 
      }) 
    }); 

}); 
+0

我看到了反对票,这将有助于我知道为什么这是一个坏的问题。 – muninn9

+0

不是我的倒票,但它会有助于澄清你在做什么不工作,并注意到目前为止你所做的调试。看着你的代码,我希望你在运行时遇到异常。 – JohnnyHK

+0

太好了,谢谢你比倒票更有帮助。 – muninn9

回答

0
country.find({"name": nameReq}, function (err, person) { 

上面一行是造成你的错误,你在返回的文档中搜索?它只是一个文件,而不是一个集合。

您可以嵌入文档使用id()方法:

看子文档[http://mongoosejs.com/docs/subdocs.html]

+0

我以为我在教程中的示例遵循类似的逻辑。无论如何,我只想提供一个名称和一个国家,并从提供的国家删除所提供的人员(按姓名)。 – muninn9

+0

@ muninn9:看看我更新的链接 – Thalaivar