Мисля, че това, което имате предвид като JSON, всъщност е обект на документ на Mongoose предвид таговете, които сте добавили към въпроса си. Тъй като този обект е прикачен към неговата „схема“, може да имате правила там, като например „задължително“ поле или такива, които пречат на операцията, която се опитвате да извършите.
За да получите обратно необработена форма на обекта, просто използвайте .toObject()
метод върху резултата от документа:
Model.findOne({ _id: id}, function(err,doc) {
var raw = doc.toObject();
delete raw.element;
console.log( raw );
});
Разбира се, винаги можете просто да пропуснете полето да бъде върнато в резултата от заявката с основния формуляр, предоставен от .select()
:
Model.findOne({ _id: id}, '-element', function(err,doc) {
console.log( doc );
});
И двата формуляра ще премахнат това конкретно поле от отговора, но ако евентуално искате повече контрол върху резултата от това, което може да бъде предоставено от проекцията на полето от .select()
след това използвайте .toObject()
формират и манипулират само като обикновен JavaScript обект.