Ich weiß nicht, ob Mongoose 5.0.0 standardmäßig Arrayfilter unterstützen soll, aber Sie können dies erreichen, indem Sie die Befehlsmethode von Mongoose verwenden, die direkt auf MongoDB ausgeführt wird, und daher alle verfügbaren Funktionen nutzen können, einschließlich ArrayFilters auf MongoDB 3.6.1
Beispiel:
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>) },
],
},
],
})