MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mise à jour de Node.js Mongoose avec ArrayFilters

Je ne sais pas si Mongoose 5.0.0 est censé prendre en charge les Arrayfilters prêts à l'emploi, mais vous pouvez y parvenir en utilisant la méthode de commande de Mongoose qui s'exécute directement sur MongoDB. Vous pouvez donc utiliser toutes les fonctionnalités disponibles, notamment ArrayFilters sur MongoDB 3.6.1.

Exemple :

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