sql >> Databasteknik >  >> NoSQL >> MongoDB

Node, Mongoose:Ta bort json-element från frågeresultat med delete

Jag tror att det du refererar till som JSON faktiskt är ett Mongoose-dokumentobjekt med tanke på taggarna du lagt till i din fråga. Eftersom det objektet är kopplat till sitt "schema" kan du ha regler där, såsom ett "obligatoriskt" fält eller sådant som stör operationen du försöker göra.

För att få tillbaka en rå form av objektet, använd helt enkelt .toObject() metod på dokumentresultatet:

Model.findOne({ _id: id}, function(err,doc) {

    var raw = doc.toObject();
    delete raw.element;

    console.log( raw );

});

Naturligtvis kan du alltid bara utelämna fältet från att returneras i frågeresultatet med det grundläggande formuläret som tillhandahålls av .select() :

Model.findOne({ _id: id}, '-element', function(err,doc) {

    console.log( doc );

});

Båda formerna skulle ta bort just det fältet från svaret, men om du eventuellt vill ha mer kontroll över resultatet än vad som kan tillhandahållas av fältprojektionen från .select() använd sedan .toObject() form och manipulera precis som ett vanligt JavaScript-objekt.




  1. Korrekt dölja databasuppgifter

  2. Mest populära NoSQL-databaser som stöds av ClusterControl

  3. VARNING Fel:Meteorkod måste alltid köras inom en fiber när anropsmetod på servern

  4. Lista det sista meddelandet i varje konversation, som involverar en användare, i MongoDB