sql >> Database >  >> NoSQL >> MongoDB

Node, Mongoose:verwijder json-element uit queryresultaat met delete

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.




  1. MongoDB $dayOfYear

  2. Groovy kon geen overeenkomende constructor vinden?

  3. Redis serviceStack gepoolde verbindingsclient

  4. Voorbeeld voor transacties in mongodb met GoLang