重复的mongodb对象参数,但仅显示一个?最后一位四舍五入吗?

问题描述 投票:0回答:1

所以我的数据库遇到很多奇怪的事情。登录后,当我发现我的余额不再是以前的时候,它开始了。然后,我发现两个明显不同的帐户具有相同的编号。无论如何。我正在使用护照,策略是蒸蒸日上。这是我的两个编码形式的问题:

第一奇数:*当使用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的那个。这个。老实说,这使我感到困惑。这怎么可能对我来说毫无意义。

所以有两个问题。我想以免责声明结束这个问题。我已经和猫鼬玩了一段时间了,我认为自己是一个初学者。因此,我真的希望答案的问题是显而易见的,但如果是这样,那就对不起菜鸟问题。

谢谢!

node.js mongodb mongoose passport.js steam
1个回答
0
投票

如果打开您喜欢的浏览器的控制台并在其中键入76561198053118469,您将获得76561198053118460。这是因为76561198053118469被解释为浮点数(在javascript中),因此存储不精确。

确保在使用用户ID的任何地方都在使用字符串,并将ID存储为字符串,而不是数字。

© www.soinside.com 2019 - 2024. All rights reserved.