Myslím, že to, co označujete jako JSON, je ve skutečnosti objekt dokumentu Mongoose vzhledem ke značkám, které jste přidali ke své otázce. Protože je tento objekt připojen ke svému "schématu", můžete v něm mít pravidla, jako je pole "povinné" nebo taková, která narušují operaci, kterou se pokoušíte provést.
Chcete-li získat zpět nezpracovaný tvar objektu, jednoduše použijte .toObject()
metoda ve výsledku dokumentu:
Model.findOne({ _id: id}, function(err,doc) {
var raw = doc.toObject();
delete raw.element;
console.log( raw );
});
Samozřejmě můžete vždy jednoduše vynechat, aby se pole vrátilo ve výsledku dotazu se základním formulářem, který poskytuje .select()
:
Model.findOne({ _id: id}, '-element', function(err,doc) {
console.log( doc );
});
Každá forma by odstranila toto konkrétní pole z odpovědi, ale pokud chcete mít nad výsledkem větší kontrolu, než jakou může poskytnout projekce pole z .select()
pak použijte .toObject()
formovat a manipulovat s ním jako s prostým JavaScriptovým objektem.