PyMongo返回float而不是integer

时间:2015-10-31 11:46:35

标签: python mongodb pymongo

我在Mongo中有一个集合,我在其中存储了URL,因为我使用以下字段:

  • 协议(类型:字符串) - 例如:https
  • host(type:string) - 例如:google.com
  • port(类型:整数) - 例如:80

在mongo客户端我执行

db.myCollection.find()

然后返回

{"protocol" : "https", "host" : "google.com", "port" : 80}

在使用PyMongo的Python中我执行

for service in myCollection.find():
  print service['port']

然后返回

80.0

我的号码是否存储为整数?

使用PyMongo,如何将其作为整数返回而不是浮动?

2 个答案:

答案 0 :(得分:4)

来自the docs

  

默认情况下,mongo shell将所有数字视为浮点数   值。 mongo shell提供了NumberInt()构造函数   明确指定32位整数。

我猜值存储​​为float。

相关:https://stackoverflow.com/a/30501514/4653485

答案 1 :(得分:1)

您可以将它转换为整数,如下所示:

for service in myCollection.find():
  print int(service['port'])