sql >> Database >  >> NoSQL >> MongoDB

Mongoose __v wanneer verandert het?

De auteur van het artikel was niet erg duidelijk wanneer de versieverhoging intern zal worden toegepast, omdat, zoals je hebt ontdekt, het versieveld niet wordt bijgewerkt wanneer je het update-commando gebruikt.

Als u de update-opdracht vervangt door Mongoose pull methode op uw array, wordt het versieveld verhoogd:

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

Resultaten:

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

Bewerken:

De updatemethode op het model bouwt in principe alleen de query op en voert deze uit. Het controleren / verhogen van de versie wordt gedaan wanneer u de opslagmethode gebruikt




  1. UUID's gebruiken in plaats van ObjectID's in MongoDB

  2. Time-out van Pymongo-verbinding vanaf externe computer

  3. mongodb query-subset van een array

  4. Betere manier om MongoDB-verzameling naar een andere verzameling te verplaatsen