【问题标题】:What is wrong in this id comparison algorithm, built in NodeJs? [duplicate]这个 id 比较算法有什么问题,内置在 NodeJs 中? [复制]
【发布时间】:2021-08-18 06:30:18
【问题描述】:

我想检查一个 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,
    })
  });
});

有什么问题?提前致谢

【问题讨论】:

    标签: javascript node.js mongodb


    【解决方案1】:

    它们很可能是不同的types 和相同的values。将它们转换为相同类型后尝试比较

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

    【讨论】:

    • 也许也尝试修剪它们?
    猜你喜欢
    • 2011-02-16
    • 1970-01-01
    • 1970-01-01
    • 2011-01-14
    • 2016-08-03
    • 1970-01-01
    • 2011-04-10
    • 2012-01-30
    • 1970-01-01
    相关资源
    最近更新 更多