如何从mongoDB中读取所有集合?

时间:2018-03-29 14:35:14

标签: python mongodb

如果我想读取我的数据库(mongoDB)的所有集合,我使用方法find()" print(db.collecion.find())"我们做错了

错误:

'数据库'对象不可调用。如果你打算打电话给''发现'关于MongoClient'的方法对象失败,因为不存在这样的方法。

如何解决? 代码来源:

from pymongo import MongoClient
from pymongo import *
import os
import pprint

mongodb_host = 'localhost'
mongo_port = '27017'

client = MongoClient(mongodb_host + ':'+mongo_port)
db = client['test']
cl=db.client
try:

  pprint.pprint(cl.find())
except Exception as e:
  print ('this connection or insert are wrong.')
  print (e)

错误:

  

'数据库'对象不可调用。如果你打算打电话给''发现'   关于MongoClient'的方法对象失败,因为没有这样的方法   存在。

如何解决?

1 个答案:

答案 0 :(得分:0)

使用find之后,你需要在其中创建一个循环来记录。然后你应该能够检索它们。

from pymongo import MongoClient
client = MongoClient()
db = client.db_name
for document in db.get_collection('collection_name').find():
    print(document)

根据你的第二个请求我假设你想要这样的输出。

from pymongo import MongoClient
from prettytable import PrettyTable
client = MongoClient()
db = client.kliffot
table = PrettyTable(['Mail', 'Timezone'])
for document in db.get_collection('user').find():
   table.add_row([document['email'], document['timezone']])
print(table)

"""Output sample"""
+-------------------+----------+
|        Mail       | Timezone |
+-------------------+----------+
| guray@kliffot.com |   UTC    |
| guray@kliffot.com |   UTC    |
+-------------------+----------+

如果是这样,您可以通过

使用https://pypi.python.org/pypi/PrettyTable
pip3 install PrettyTable or pip install PrettyTable

取决于你的python版本。