MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Node.js Mongoose .update com ArrayFilters


Não sei se o Mongoose 5.0.0 deve suportar Arrayfilters prontos para uso, mas você pode obtê-lo usando o método de comando do Mongoose que é executado diretamente no MongoDB, portanto, pode utilizar todos os recursos disponíveis, incluindo ArrayFilters no MongoDB 3.6.1

Exemplo:
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>) },
      ],
    },
  ],
})