Ik denk dat waar je naar verwijst als JSON eigenlijk een Mongoose-documentobject is, gezien de tags die je aan je vraag hebt toegevoegd. Aangezien dat object aan zijn "schema" is gekoppeld, kunt u daar regels hebben, zoals een "verplicht" veld of iets dergelijks, dat de bewerking die u probeert uit te voeren, hindert.
Om een onbewerkte vorm van het object terug te krijgen, gebruikt u gewoon de .toObject()
methode op het documentresultaat:
Model.findOne({ _id: id}, function(err,doc) {
var raw = doc.toObject();
delete raw.element;
console.log( raw );
});
Natuurlijk kunt u altijd gewoon weglaten dat het veld wordt geretourneerd in het zoekresultaat met het basisformulier dat wordt verstrekt door .select()
:
Model.findOne({ _id: id}, '-element', function(err,doc) {
console.log( doc );
});
Elke vorm zou dat specifieke veld uit het antwoord verwijderen, maar als u mogelijk meer controle over het resultaat wilt dan wat kan worden geboden door de veldprojectie van .select()
gebruik dan de .toObject()
vorm en manipuleer net als een gewoon JavaScript-object.