sql >> Database >  >> NoSQL >> MongoDB

Mongoose-fout:kan __v en __v niet tegelijkertijd bijwerken

Ik stel voor dat je _id-gerelateerde verwijderlogica in je mangoestmodel Schemadefinitiebestand plaatst:

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

Voer vervolgens in uw callback toJSON uit:

var processedJson = resultDoc.toJSON();

om de verwerkte versie op te halen die herbruikbare logica mooi verbergt.
OPMERKING:toJSON() wordt ook op magische wijze uitgevoerd door JSON.stringify()




  1. MongoDB $lte Aggregation Pipeline Operator

  2. Hoe serialiseer ik chrono::DateTime-velden als ISODate bij gebruik van het Rust Mongo-stuurprogrammaprototype?

  3. Roep naar een lidfunctie all() op array in laravel

  4. Naamruimten in Redis?