簡體   English   中英

MongoDB 嘗試刪除數組項時出錯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM