2012-05-31 17 views

Odpowiedz

23

Możesz sprawdzić prototyp obiektu za pomocą operatora instanceof, aby potwierdzić, że jest to instancja twojego modelu mongoidalnego. Korzystanie z przykładowy schemat z mongoosejs.com:

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

Nice! na przykład this.message = obiekt instanceof Message? object: new Message (object); – charneykaye

14

Używam tego

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

Ten zadziałał, powyższa odpowiedź kończy się niepowodzeniem w JSLint – Enkode

+0

"model" to bardzo ogólna nazwa. –

0

follwing dla mnie w przypadku sprawdzania gdy ObjectID jest zaludniony przedmiot lub po prostu ObjectID:

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

Aby sprawdzić czy obj jest obiektem Mongoose, użyj tego fragmentu:

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

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

W przeciwieństwie do innych dostarczonych rozwiązań, ten jest bezpieczny - nigdy nie zawiedzie niezależnie od typu obj (nawet String lub Int).