sql >> Base de Datos >  >> NoSQL >> MongoDB

Node.js Mongoose .actualización con ArrayFilters

No sé si se supone que Mongoose 5.0.0 es compatible con Arrayfilters desde el primer momento, pero puede lograrlo usando el método de comando de Mongoose que se ejecuta directamente en MongoDB, por lo tanto, puede utilizar todas las funciones disponibles que incluyen ArrayFilters en MongoDB 3.6.1

Ejemplo:

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