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

Mongoose __v hvornår ændres det

Forfatteren af ​​artiklen var ikke særlig klar over, hvornår versionstilvæksten vil blive anvendt internt, for som du fandt ud af, er versionsfeltet ikke opdateret, når du bruger opdateringskommandoen.

Hvis du erstatter opdateringskommandoen med Mongoose træk metode på dit array vil versionsfeltet blive forøget:

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

Resultater:

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

Rediger:

Opdateringsmetoden på modellen bygger og udfører stort set kun forespørgslen. Versionskontrollen/stigningen udføres, når du bruger gem-metoden




  1. Samlet/projekt underdokument som dokument på øverste niveau i mongo

  2. Node.js SSH Tunneling til MongoDB ved hjælp af Mongoose

  3. return Model.create(arr).exec() virker ikke i mongoose

  4. Hvordan implementerer man server push i Flask framework?