[英]MongoDB error trying to delete array item
我正在嘗試從 MongoDB model 中的數組中刪除一個項目。 這是我的國家 model:
const CountrySchema = mongoose.Schema({
name: { type: String, required: true },
holidays:
[
{
day: {type: Number, required: true},
month: {type: Number, required: true},
description: { type: String, required: true }
},
],
states: { type: [String], required: true }
});
我已經在幾個國家/地區的數據庫中有一個端點,我有一個端點可以從該國家/地區刪除一個假期。 我從請求參數中獲得了國家名稱,並從 POST 中提供了假期信息。 像那樣:
{
"day": 10,
"month": 4,
"description": "Random party"
}
所以我的 function deleteHoliday 是這樣的:
function deleteHoliday(req, res) {
var country_name = req.params.country_name;
var n_description = new Country(req.body.description);
let query = Country.update({ 'name': country_name }, { '$pull': { holidays: { description: n_description }}})
query.exec( (err, holidays) =>{
//Check if no errors and send json back
if(err){
res.send(err);
}
res.status(200).json({message:"Holiday removed successfully"});
})
}
我不太確定如何執行查詢,但是在執行查詢之前,我收到下一個錯誤:
ObjectParameterError:Document() 的參數“obj”必須是 object,隨機方。
我只想刪除帶有給定描述的假日項目。 在這種情況下隨機方。
謝謝你的幫助。
抱歉,我犯了一個錯誤,我傳遞的是 object 類型 Country 而不是描述。
var n_description = new Country(req.body.description);
should be
var n_description = req.body.description;
已經解決了!
錯誤就在這里,
var n_description = new Country(req.body.description);
需要一個簡單的字符串,相應地更改它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.