sql >> Base de Datos >  >> NoSQL >> MongoDB

Nodo, mangosta:elimine el elemento json del resultado de la consulta con eliminar

Creo que a lo que se refiere como JSON es en realidad un objeto de documento Mongoose dadas las etiquetas que agregó a su pregunta. Dado que ese objeto está adjunto a su "esquema", es posible que tenga reglas allí, como un campo "obligatorio" o similar, que esté interfiriendo con la operación que está tratando de hacer.

Para recuperar una forma sin procesar del Objeto, simplemente use .toObject() método en el resultado del documento:

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

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

    console.log( raw );

});

Por supuesto, siempre puede omitir que el campo se devuelva en el resultado de la consulta con el formulario básico proporcionado por .select() :

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

    console.log( doc );

});

Cualquiera de las formas eliminaría ese campo en particular de la respuesta, pero si posiblemente desea más control sobre el resultado que el que puede proporcionar la proyección de campo de .select() luego use .toObject() forma y manipula como un simple objeto de JavaScript.