使用 Pymongo 获取集合的所有文档

我想编写一个函数来返回 mongodb 中 mycollection中包含的所有文档

from pymongo import MongoClient


if __name__ == '__main__':
client = MongoClient("localhost", 27017, maxPoolSize=50)
db=client.mydatabase
collection=db['mycollection']
cursor = collection.find({})
for document in cursor:
print(document)

但是,该函数返回: Process finished with exit code 0

155443 次浏览

Here is the sample code which works fine when you run from command prompt.

from pymongo import MongoClient


if __name__ == '__main__':
client = MongoClient("localhost", 27017, maxPoolSize=50)
db = client.localhost
collection = db['chain']
cursor = collection.find({})
for document in cursor:
print(document)

Please check the collection name.

I think this will work fine in your program.

cursor = db.mycollection # choosing the collection you need


for document in cursor.find():
print (document)

pymongo creates a cursor. Hence you'll get the object 'under' the cursor. To get all objects in general try:

list(db.collection.find({}))

This will force the cursor to iterate over each object and put it in a list()

Have fun...

it works fine for me,try checking the exact database name and collection name. and try changing from db=client.mydatabase to db=client['mydatabase'] .

If your database name is such that using attribute style access won’t work (like test-database), you can use dictionary style access instead. source !