猫鼬在UpdateOne中添加了不正确的值

时间:2020-11-03 05:58:54

标签: node.js mongodb mongoose

我正在尝试根据用户的密钥更新用户的不和谐ID,以将两者链接在一起。这是我的代码:

console.log(user.discordID);
User.updateOne({key: user.key},{discordID: user.discordID}, (err, result) => {
       if(err){
              console.log(err);
              return err;
              }
       console.log("Updated missing User discord ID");
       console.log(result);
       console.log(user.discordID);
});

我将用户对象传递给函数,并已验证值正确。在更新前后,console.logs均显示正确的值660955020694650891。但是在更新后的DB本身中,值是660955020694650650900。对于我来说,我不知道为什么会发生这种情况并且它破坏了其他功能。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

可能是因为discordID的数量大于“ Number.MAX_SAFE_INTEGER”,这意味着javascript无法表示确切的数字。 在此处查看更多信息: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER

您可以使用BigInt解决问题。 在这里查看详细信息: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt