I have the following object
{ _id: 58ae39c54473f9cfd4eb29b6,
  email: '[email protected]',
  name: 'Another Club Renamed',
  __v: 0,
  createdEvents: [],
  instructors: [ 58a5ac4f84230a2117d1d6cb, 111111111111111111111111 ],
  members: [] }
when I use the method
object.instructors.includes(58a5ac4f84230a2117d1d6cb)
object.instructors.includes(111111111111111111111111)
or
object.instructors.includes('58a5ac4f84230a2117d1d6cb')
object.instructors.includes("111111111111111111111111")
the result is always false am I doing something incorrect?
Array.isArray(club.instructors) returns true
EDIT: The object is a mongoose.document. The object above is exactly how it gets logged to the console when I execute
Club.findById(id (err, club) =>{
    console.log(club);
})
                the mongo _id is 12-byte BSON type ObjectId,
So normal object.instructors.includes('58a5ac4f84230a2117d1d6cb') means you are comparing a raw string to an ObjectId,which is not a valid integer or string, which will always return FALSE.
NOTE: Tips for further understanding
use lodash to check the same ObjectId stored in multiple collections
npm i lodash --save
in your file.js
const _ = require('lodash');
lodash _.isEqual performs a deep comparison between two values to determine if they are equivalent
use lodash and perform _.isEqual for deep comparing
_.isEqual(object._id, '58ae39c54473f9cfd4eb29b6') // false
_.isEqual(object.instructor[0], '58a5ac4f84230a2117d1d6cb') // false
suppose the id 58ae39c54473f9cfd4eb29b6 comes from two different mongodb documents 
collection USERS: [{_id: 58ae39c54473f9cfd4eb29b6, name: 'user1' }]
suppose this user is referenced to rooms collection:
collection ROOMS: [{_id: ObjectId, name: 'room1', userId: 58ae39c54473f9cfd4eb29b6}]
if you do a normal comparison=== or includes like this
if (user[0]._id === rooms[0].userId) // false due to different instances
_.isEqual(user[0]._id, rooms[0].userId) // true performs deep comparison
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With