鍍金池/ 問答/數(shù)據(jù)庫/ mongodb update 三級(jí)以上無法刪除

mongodb update 三級(jí)以上無法刪除

 Project.updateOne(r, {
    $pull: {
        thunder2: {
            files: {
                _id: "5ab362d446f15936bcea7dd3"
            }
        }
    }
}, function(err, data) {
    if (err) {
        res.send("")
    } else {
        res.send("1")
    }
})
回答
編輯回答
舊言

可以做,但是需要MongoDB 3.6支持??匆幌?a rel="nofollow noreferrer">arrayFilters。舉個(gè)例子:

// 數(shù)據(jù)示例:
{
    "_id": ObjectId("5ab8c93249e47f821364662b"),
    "array": [{
        "array": [{
            "_id": ObjectId("5ab8c93249e47f821364662a")
        }]
    }]
}
// 更新語句:
db.test.update({
    "array.array._id": ObjectId("5ab8c93249e47f821364662a")
}, {
    $pull: {
        "array.$[elm].array": {
            _id: ObjectId("5ab8c93249e47f821364662a")
        }
    }
}, {
    arrayFilters: [{
        "elm.array._id": ObjectId("5ab8c93249e47f821364662a")
    }]
})
2017年4月12日 16:56