web-dev-qa-db-fra.com

Qu'est-ce que le champ "__v" à Mongoose?

J'utilise Mongoose version 3 avec MongoDB version 2.2. J'ai remarqué qu'un champ __v a commencé à apparaître dans mes documents MongoDB. Est-ce quelque chose à voir avec la gestion des versions? Comment est-ce utilisé?

264
Simon Lomax

De ici :

La versionKey est une propriété définie sur chaque document lors de sa création par Mongoose. Cette valeur de clé contient la révision interne du document. Le nom de cette propriété de document est configurable. La valeur par défaut est __v.

Si cela entre en conflit avec votre application, vous pouvez configurer en tant que tel:

new Schema({..}, { versionKey: '_somethingElse' })
269
Tony The Lion

Eh bien, je ne vois pas la solution de Tony ... alors je dois m'en occuper moi-même ...


Si vous n'avez pas besoin de version_key, vous pouvez simplement:

var UserSchema = new mongoose.Schema({
    nickname: String,
    reg_time: {type: Date, default: Date.now}
}, {
    versionKey: false // You should be aware of the outcome after set to false
});
60
kenberkeley