2012-05-31 22 views

Respuesta

23

Puede comprobar prototipo del objeto a través del operador instanceof confirmar que es una instancia de su modelo de mangosta. Utilizando el esquema de ejemplo mongoosejs.com:

if (obj instanceof Cat) { 
    // yes, it's a mongoose Cat model object 
    ... 
} 
+0

¡Agradable! p.ej. this.message = object instanceof Mensaje? objeto: nuevo Mensaje (objeto); – charneykaye

14

estoy usando este

if (object.constructor.name === 'model') { 
    // object is mongoose object 
} 
+0

Éste trabajó, la respuesta anterior falla en JSLint – Enkode

+0

'modelo' es un nombre muy genérico. –

0

El follwing para mí en el caso de la comprobación cuando un ID de objeto es un objeto poblada o sólo un ID de objeto:

if (object._id.constructor.name === 'ObjectID') { 
    // Not a populated object, only its ID 
} 
0

Para comprobar si obj es un objeto Mongoose, utilice este fragmento:

const _ = require('lodash'); 
const mongoose = require('mongoose'); 

function checkIfMongooseObject(obj) { 
    return _.get(charger, 'constructor.base') instanceof mongoose.Mongoose; 
} 

Contrariamente a otras soluciones proporcionadas, esta es segura - nunca fallará independientemente del tipo de obj (ya sea Cadena o Int).