无法理解这个简单的pymongo代码有什么问题

时间:2017-02-22 18:15:05

标签: python mongodb pymongo

我的虚拟机总是返回一个空指针进行查询。服务器或我的代码有问题吗?

我的代码:

Code

我的虚拟机屏幕:

virtual machine

1 个答案:

答案 0 :(得分:0)

如果没有更多细节,我可以从代码中理解这一点:

您正在实例化客户端:

client = pymongo.MongoClient(url)

我认为这是有效的,给出了第二个截图。

您将获得一个可供您的客户使用的数据库:

db = client["fullstack"]

这可能是一个潜在的问题。你确定你有“fullstack”数据库吗?也许它被称为“fullStack”或类似的?

默认情况下,如果您没有“fullstack”数据库,mongo将为您“创建”它(这可能不是正确的术语。它基本上就像在mongo shell中执行use fullstack一样。如果您没有“fullstack”数据库,它将工作,您将能够与它进行交互,但如果您不对此数据库执行任何操作,则一旦断开连接,它将消失。)

您正在尝试访问某个集合。

collection = db["students"]

同样,与db相同的问题。确保它是“学生”而不是“学生”或类似的东西。另外,请确保您确实在那里有记录。

我会建议做类似的事情:

collection.insert_one({'test': 'record'})

这是为了确保你确实在那里有东西。

您可以通过执行以下操作删除它:

collection.remove({'test': 'record'})

此外,迭代游标会消耗光标。由于您没有数百万条记录,因此可以执行以下操作:

records = [record for record in collection.find({})]

这会将您在内存中的所有记录保存在列表中,您可以重复使用。

希望这有帮助!