重复 mongodb 个对象参数但只显示一个?最后一位数字四舍五入?
Duplicate mongodb objects params but only one gets shown? Last digits get rounded?
所以我的数据库出现了一些异常情况。当我登录后发现我的余额不像以前那样时,它就开始了。然后我发现两个明显不同但号码相同的账户。无论如何。我正在使用护照,策略是蒸汽。这是我的两个编码形式的问题:
第一个怪事:
*当使用 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
被解释为 as a floating-point number(在 javascript 中),因此存储不准确。
确保在操作用户 ID 的任何地方都使用字符串,并将 ID 存储为字符串,而不是数字。
所以我的数据库出现了一些异常情况。当我登录后发现我的余额不像以前那样时,它就开始了。然后我发现两个明显不同但号码相同的账户。无论如何。我正在使用护照,策略是蒸汽。这是我的两个编码形式的问题:
第一个怪事: *当使用 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
被解释为 as a floating-point number(在 javascript 中),因此存储不准确。
确保在操作用户 ID 的任何地方都使用字符串,并将 ID 存储为字符串,而不是数字。