MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Mangusta __v quando cambia

L'autore dell'articolo non è stato molto chiaro quando l'incremento di versione verrà applicato internamente, perché come hai scoperto il campo della versione non viene aggiornato quando utilizzi il comando update.

Se sostituisci il comando update con Mongoose pull metodo sul tuo array il campo della versione verrà incrementato:

var t = Test();
t.name = 'hi'
t.arr = [1, 2, 3, 4, 5, 6];

t.save(function (err, result) {
    console.log(result);

    // use Mongoose pull method on the array
    t.arr.pull(3);

    t.save(function(err2, result2) {
        console.log(result2)
    });
});

Risultati:

{ __v: 0,
  name: 'hi',
  _id: 53f59d2a6522edb12114b98c,
  arr: [ 1, 2, 3, 4, 5, 6 ] }
{ __v: 1,
  name: 'hi',
  _id: 53f59d2a6522edb12114b98c,
  arr: [ 1, 2, 4, 5, 6 ] }

Modifica:

Il metodo di aggiornamento sul modello fondamentalmente crea ed esegue solo la query. Il controllo/incremento della versione viene eseguito quando si utilizza il metodo di salvataggio