inArray mongoose ObjectID

I have this model:

var HuntGroupSchema = new Schema({
    name        : { type: String, required: true }
    ,domain     : { type: ObjectId, required: true, ref: 'Domain' }
    ,members    : [{ type: ObjectId, ref: 'User'}]
    ,email      : { type: String, unique: true}
    ,pin        : { type: Number, default: 0}
    ,extension  : { type: Number, required: true}
    ,timescheme : { type: ObjectId, ref: 'TimeScheme'}
    ,ddi        : { type: String}
});

and have this data

db.huntgroups.find()
{ "_id" : ObjectId("50373487947749f0370000b0"), "ddi" : "01376xxxxxx", "domain" :      ObjectId("502807e9b9e737036d000018"), "email" : "julian@dotr.com", "extension" : 3001,     "members" : [ ObjectId("50376767b5c99cd862000003") ], "name" : "test22", "pin" : 1234 }

and this test always returns -1

// req.params['member'] === '50376767b5c99cd862000003'
var member_id = mongoose.Types.ObjectId(req.params['member']);

console.log($.inArray(member_id, huntgroup.members));

can anyone tell me why ?

Warning: I am a newbie at mongoose, jquery and javascript, so go gentle ;)

It's because $.inArray is only checking for reference equality on the ObjectId objects.

To compare the values of the ObectIds instead you'd need to use the equals operator of ObjectId by doing something like the following:

huntgroup.members.forEach(function(member) {
    if (member.equals(member_id)) {
        // Yes, member_id is contained in the array
    }
});