sql >> Databasteknik >  >> NoSQL >> MongoDB

Hitta om objekt har ändrats i pre-save hook mongoose

Först och främst behöver du inte originalet objekt överhuvudtaget. Du kan komma åt den i pre koppla via denna . För det andra post hook körs bara efter alla pre hooks exekveras, så din kod är inte vettig alls (kolla mongoose-dokument ).

Du kan göra kontrollen genom att markera isModified i din pre haka på och ta bort post kroka överhuvudtaget.

OrderSchema.pre('save', function(next) {    
    if(!this.isModified()){
        //not modified
    }
    next();
});

Uppdatera

För att kontrollera om någon egenskap har ändrats, skicka egenskapsnamnet som en parameter till isModified funktion:

if (this.isModified("some-property")) {
  // do something
}



  1. Försöker befolka i mongoose endast om ref inte är null - fungerar inte

  2. Hur får man aktuell anslutningspoolbeläggning på klient med mongo .net-drivrutin?

  3. Sök i flera fält efter flera värden i MongoDB

  4. Hur MongoDB skiljer sig från en SQL-databas