2012-05-31 15 views

Antwort

23

Sie können den Prototyp des Objekts über den Operator instanceof überprüfen, um zu bestätigen, dass es sich um eine Instanz Ihres Mungo-Modells handelt. Am Beispiel Schema aus mongoosejs.com:

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

Schön! z.B. this.message = Objektinstanz der Nachricht? Objekt: neue Nachricht (Objekt); – charneykaye

14

Ich verwende diese

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

Dieser arbeitete, die obige Antwort schlägt in JSLint – Enkode

+0

"Modell" ist ein sehr generischer Name. –

0

Den follwing für mich im Fall der Überprüfung, wenn ein ObjectID ein besiedeltes Objekt ist oder nur ein ObjectID:

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

Um zu überprüfen, ob obj ein Mungo-Objekt ist, verwenden Sie diesen Schnipsel:

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

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

Im Gegensatz zu anderen bereitgestellten Lösungen ist diese eine sichere - es wird nie unabhängig von der Art obj (sei es String oder Int) ausfallen.