【发布时间】:2015-09-03 16:26:50
【问题描述】:
我正在使用 PyMongo 将数据保存到 MongoDB。以下是我的代码:
from pymongo import MongoClient
import time
class data2db:
def __init__(self):
pass
def enter_data(self, data):
client = MongoClient('127.0.0.1', 27017)
db = client.db
coll = db.Temperature1
post = {"auth": data,
"Time": time.asctime(time.localtime(time.time()))}
post_ = coll.insert(post)
c = data2db()
c.enter_data(24.3)
但是,当我检索这个对象时,我得到:
{ "_id" : ObjectId("558019749f43b8c19779c106"), "auth" : -0.000063384, "Time" : "Tue Jun 16 08:41:24 2015" }
当我用整数尝试相同的代码时,它工作正常。我在 RaspberryPi 上使用 MongoDB 2.6.3 以及最新版本的 Raspbian 和 python 2.7.3。我通过以下命令从 Raspbian 存储库安装了 Pymongo:
sudo apt-get install python-pymongo
有人可以帮帮我吗?
更新: 相同的代码在使用 Ubuntu 14.04 LTS、mongoDB 3.0.1、python 2.7.3 和 pyMongo 2.8 的英特尔计算机上表现完美,但对于 Raspbian,行为发生了变化。即使在 mongo shell 中,Raspbian 上的浮点插入也是行为不端。这可能是因为有限的浮点支持或不推荐使用的 mongoDB 版本(最新版本的二进制文件不适用于 ARM)。无论如何,我将在今天晚些时候尝试使用 rpi2 并检查它是否有所作为。
【问题讨论】:
-
第一个代码段最后一行是:c.enter_data(24.3) not c.enter_data("24.3")
-
在那种情况下,浮点数
24.3如何变成字符串"-0.000063384",这极不可能不是由于某处的人为错误 -
我正在使用两台不同的计算机,一台用于开发,另一台用于互联网,我自己编写了对象。在发帖之前我应该先校对一下
-
无论如何我已经修改了这个问题,谢谢你指出这一点
-
问题可能是缺乏浮点支持吗?
标签: python mongodb pymongo raspbian database