Javascript 这个内置NodeJs的id比较算法有什么问题?

Javascript 这个内置NodeJs的id比较算法有什么问题?,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我想检查项目列表中是否包含id。 项目是对象,其中一个字段是id 如果出于检查目的记录ID,则结果如下: 60b23d56c60fdc3610a585f0 60b2443ac60fdc3610a585f5 false 60b24424c60fdc3610a585f4 60b2443ac60fdc3610a585f5 false 60b2443ac60fdc3610a585f5 60b2443ac60fdc3610a585f5 false // these items are equals but

我想检查项目列表中是否包含id。 项目是对象,其中一个字段是
id

如果出于检查目的记录ID,则结果如下:

60b23d56c60fdc3610a585f0 60b2443ac60fdc3610a585f5 false
60b24424c60fdc3610a585f4 60b2443ac60fdc3610a585f5 false
60b2443ac60fdc3610a585f5 60b2443ac60fdc3610a585f5 false // these items are equals but it still shows me false
60b2444bc60fdc3610a585f6 60b2443ac60fdc3610a585f5 false
60b24466c60fdc3610a585f7 60b2443ac60fdc3610a585f5 false
我使用mongoDB和NodeJs

这是我的代码:

let permissions = await PermissionModel.find({})
  .where("isDelete")
  .equals(false);
    
let rolePermissionInfo = await RolePermissionModel.findOne({ roleId: roleId, isDelete: false })
  .populate({
    path: 'roleId',
    model: 'Role',
    select: 'name'
  })
  .populate({
    path: 'permissionId',
    model: 'Permission',
    select: 'name id parentId'
  })
    
model.roleId = rolePermissionInfo.roleId.id;
model.roleName = rolePermissionInfo.roleId.name;
    
permissions.forEach((permission: any) => {
  rolePermissionInfo.permissionId.forEach((elment: any) => {
    model.claims.push({
      id: permission._id,
      isChild: false,
      parentId: permission.parentId,
      selected: element._id === permission._id ? true : false,
      name: permission.name,
    })
  });
});

有什么问题吗?提前感谢

它们很可能是不同的
类型
,具有相同的
。将它们转换为相同类型后,尝试进行比较

selected: elment._id.toString() === permission._id.toString(),

它们很可能是不同的
类型
,具有相同的
。将它们转换为相同类型后,尝试进行比较

selected: elment._id.toString() === permission._id.toString(),

也许还想修剪它们?也许还想修剪它们?