簡體   English   中英

無法從貓鼬的數組中刪除元素

[英]Unable to remove element from Array in Mongoose

我試圖從貓鼬的數組模型中通過其_id刪除元素。 相同的技術在我的代碼的其他地方也起作用,但是在這里它無法刪除該元素。 經過數小時的嘗試來更改它的各個部分之后,我終於將其發布在這里,因為也許我睡眠不足是主要原因。 有人可以找出我做錯了嗎?

ABC.findOne({
    'user': new ObjectId(req.decoded._id),
    'activity.ride': new ObjectId(id)
}, {
    'activity.$': 1
}, function(err, doc) {

    if (doc !== null) {
        for (var j = 0; j < doc.activity.length; j++) {
            var request = JSON.parse(JSON.stringify(doc.activity[j]));
            doc.activity.remove(request._id);
            doc.save();
        }
    }
});

這是模型:

var activityItem = mongoose.Schema({
    timestampValue: Number,
    xabc: String,
    full: Boolean,
    comp: Boolean
});

var ABC = mongoose.Schema({
    activity: [activityItem],
    user: {
        type: mongoose.Schema.ObjectId,
        ref: 'User'
    },
    username: String
});

$pull運算符從現有數組中刪除一個或多個與指定條件匹配的值的所有實例。 並通過findOneAndUpdate從數組中刪除元素

ABC.findOneAndUpdate({'user': new ObjectId(req.decoded._id)},
                    {$pull: {activity: {_id: request._id}}},
                    {new: true},
                    function(err, a) {
                        if (err)
                            console.log(err);
                        else
                            console.log(a);
                    });

順便說一句,我沒有在activityItem模式中找到ride ,因此我從查詢條件中刪除了ride設施。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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