MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mongoose __v quand est-ce que ça change

L'auteur de l'article n'a pas été très clair quand l'incrément de version sera appliqué en interne, car comme vous l'avez découvert, le champ de version n'est pas mis à jour lorsque vous utilisez la commande de mise à jour.

Si vous remplacez la commande de mise à jour par Mongoose pull méthode sur votre tableau, le champ version sera incrémenté :

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

Résultats :

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

Modifier :

La méthode de mise à jour sur le modèle ne construit et n'exécute que la requête. La vérification / incrémentation de version est effectuée lorsque vous utilisez la méthode de sauvegarde