Der Autor des Artikels war nicht ganz klar, wann das Versionsinkrement intern angewendet wird, weil, wie Sie herausgefunden haben, das Versionsfeld nicht aktualisiert wird, wenn Sie den Update-Befehl verwenden.
Wenn Sie den Update-Befehl durch Mongoose ersetzen, pull Methode auf Ihrem Array wird das Versionsfeld inkrementiert:
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)
});
});
Ergebnisse:
{ __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 ] }
Bearbeiten:
Die Update-Methode des Modells erstellt im Grunde nur die Abfrage und führt sie aus. Die Versionsprüfung / Inkrementierung erfolgt, wenn Sie die Speichermethode verwenden