所以我的数据库遇到很多奇怪的事情。登录后,当我发现我的余额不再是以前的时候,它开始了。然后,我发现两个明显不同的帐户具有相同的编号。无论如何。我正在使用护照,策略是蒸蒸日上。这是我的两个编码形式的问题:
第一奇数:*当使用Steam作为策略时,我会返回具有Steam ID的用户。
{ steamid: '76561198053118469',
communityvisibilitystate: 3,
profilestate: 1,
personaname: 'What Comes Around™',
commentpermission: 1,
profileurl: 'https://steamcommunity.com/id/WCAOfficial/',
avatar:
'https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/99/99f12061912d535322c9a23ee7d17ce341c27c56.jpg',
avatarmedium:
'https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/99/99f12061912d535322c9a23ee7d17ce341c27c56_medium.jpg',
avatarfull:
'https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/99/99f12061912d535322c9a23ee7d17ce341c27c56_full.jpg',
lastlogoff: 1587637203,
personastate: 1,
primaryclanid: '103582791466140922',
timecreated: 1321956195,
personastateflags: 0 }
这是返回的req.user。如您所见,user.steamid为:76561198053118469
这是我当前在数据库中的用户集合:
[ { balance: 100,
_id: 5e9a43519eabc40017ed6a85,
userid: 76561198053118460,
profileurl: 'https://steamcommunity.com/id/WCAOfficial/',
__v: 0 },
{ balance: 0,
_id: 5ea22ae86407a43c389210bd,
userid: 76561198053118460,
profileurl: 'https://steamcommunity.com/id/WCAOfficial/',
__v: 0 } ]
所以我不明白的第一件事是为什么Steam ID的最后一位数字是四舍五入的。现在我没有在此处包含实际用户,但是我的一个用户的ID以69结尾,而由于某种原因该值四舍五入为80。我一生都无法理解。
下一个问题,好的,所以请忘记第一个问题。很好,值在某处向下取整。精细。因此,如果我使用find({userid:76561198053118460})我应该用两个不同的余额取回两个用户,对吗?好吧,我不明白这一点。取而代之的是,我找回了我所登录的那个,即余额为0的那个。这个。老实说,这使我感到困惑。这怎么可能对我来说毫无意义。
所以有两个问题。我想以免责声明结束这个问题。我已经和猫鼬玩了一段时间了,我认为自己是一个初学者。因此,我真的希望答案的问题是显而易见的,但如果是这样,那就对不起菜鸟问题。
谢谢!
如果打开您喜欢的浏览器的控制台并在其中键入76561198053118469
,您将获得76561198053118460
。这是因为76561198053118469
被解释为浮点数(在javascript中),因此存储不精确。
确保在使用用户ID的任何地方都在使用字符串,并将ID存储为字符串,而不是数字。