sql >> Databáze >  >> NoSQL >> MongoDB

Chyba Mongoose:Nelze aktualizovat __v a __v současně

Navrhuji, abyste vložili logiku odstranění související s _id do souboru definice schématu modelu mongoose:

var UserSchema = new mongoose.Schema(fieldDefinitions);

// Ensure virtual fields are serialised.
UserSchema.set('toJSON', {
    virtuals: true
});

// Ensure able to see virtual fields output when using console.log(obj)
UserSchema.set('toObject', {
    virtuals: true
});

UserSchema.options.toJSON = {

    transform : function(doc, ret, options) {

        console.log('--> ' + require('util').inspect( ret._id.id ));

        ret.id = ret._id.id;
        delete ret._id;
        delete ret.__v;

        return ret;
    },
    virtuals: true
};

Poté ve zpětném volání spusťte toJSON :

var processedJson = resultDoc.toJSON();

k načtení zpracované verze, která pěkně skrývá znovu použitelnou logiku.
POZNÁMKA:toJSON() je také magicky prováděno pomocí JSON.stringify()




  1. Jak mohu použít regex v mongodb přes mongolab?

  2. Přehled Atlasu MongoDB:Část první

  3. Poskytuje Mongoose přístup k předchozí hodnotě majetku v pre('save')?

  4. connect není funkce při připojení k mongodb