MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Mangusto __v quando muda


O autor do artigo não foi muito claro quando o incremento de versão será aplicado internamente, pois como você descobriu o campo de versão não é atualizado quando você está usando o comando update.

Se você substituir o comando de atualização por Mongoose pull método em sua matriz, o campo de versão será incrementado:
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:

O método de atualização no modelo basicamente apenas constrói e executa a consulta. A verificação/incremento da versão é feita quando você usa o método save