Tôi không biết liệu Mongoose 5.0.0 có hỗ trợ Arrayfilters ra khỏi hộp hay không nhưng bạn có thể đạt được điều đó bằng cách sử dụng phương thức lệnh của Mongoose thực thi trực tiếp trên MongoDB, do đó có thể sử dụng tất cả các tính năng có sẵn bao gồm ArrayFilters trên MongoDB 3.6.1
Ví dụ:
mongoose.connection.db.command({
update: <YourModel>.collection.name,
updates: [
{
q: { 'field1.field2._id': mongoose.Types.ObjectId(<someObjectid>) },
u: {
$set: { 'field1.$.field2.$[field].fieldToUpdate': "updated!" },
},
arrayFilters: [
{ 'field._id': mongoose.Types.ObjectId(<someObjectid>) },
],
},
],
})