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

Mangosta __v cuando cambia

El autor del artículo no dejó muy claro cuándo se aplicará internamente el incremento de versión, ya que descubrió que el campo de versión no se actualiza cuando usa el comando de actualización.

Si reemplaza el comando de actualización con Mongoose pull método en su matriz, el campo de versión se incrementará:

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)
    });
});

Resultados:

{ __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 ] }

Editar:

El método de actualización en el modelo básicamente solo construye y ejecuta la consulta. La verificación/incremento de la versión se realiza cuando usa el método de guardar