PyMongo 返回 None 即使 db 显示数据也是如此



我正在尝试制作一个简单的博客,其中我正在尝试从数据库中插入和获取数据。插入数据工作正常,但获取数据,无论是.find()还是.find_one(),都会返回None,即使在 shell 中执行的相同语句也可以。

我正在尝试使用以下一系列代码在三个文件中获取数据

database.py

@staticmethod
def fetchdata(collection):
Database.DATABASE[collection].find_one()

post.py

@staticmethod
def fetch_from_db():
return Database.fetchdata('posts')

app.py

Database.initalise()
testPost = Post.fetch_from_db()
print(testPost)

您在 fetchdata 函数中缺少返回语句。 它应该像

@staticmethod
def fetchdata(collection):
return Database.DATABASE[collection].find_one()

由于它没有返回任何内容,fetch_from_db没有获得任何数据,因此None作为输出。

这是一个有据可查的问题,示例代码:

>>> from pymongo import MongoClient
>>> c = MongoClient()
>>> c.test_db.test_col.find_one()
{u'test': u'document', u'x': 1, u'_id': ObjectId('5980a8fd168186e9fb46c638'), u'other': u'value'}

编辑:

或者如果你愿意,你可以这样写:

>>> c = MongoClient()
>>> db = c.test_db
>>> col = db.test_col
>>> col.find_one()
{u'test': u'document', u'x': 1, u'_id': ObjectId('5980a8fd168186e9fb46c638'), u'other': u'value'}

文档

最新更新