2012-05-31 43 views

Trả lời

23

Bạn có thể kiểm tra nguyên mẫu của đối tượng thông qua nhà điều hành instanceof để xác nhận đó là phiên bản của mô hình mongoose của bạn. Sử dụng sơ đồ ví dụ từ mongoosejs.com:

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

Tốt! ví dụ. this.message = đối tượng của thông điệp? đối tượng: Message mới (đối tượng); – charneykaye

14

Tôi đang sử dụng này

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

Điều này làm việc, câu trả lời ở trên không thành công trong JSLint – Enkode

+0

'mô hình' là một tên rất chung chung. –

0

Các follwing cho tôi trong trường hợp kiểm tra khi một ObjectId là một đối tượng dân cư hay chỉ là một ObjectId:

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

Để kiểm tra xem obj có phải là đối tượng Mongoose hay không, hãy sử dụng đoạn mã này:

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

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

Trái ngược với các giải pháp khác được cung cấp, điều này là an toàn - nó sẽ không bao giờ thất bại bất kể loại obj (có thể là ngay cả Chuỗi hoặc Int).

Các vấn đề liên quan