【问题标题】:How to read all collection from mongoDB?如何从 mongoDB 读取所有集合?
【发布时间】:2018-03-29 14:35:13
【问题描述】:

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

错误:

“数据库”对象不可调用。如果您打算在 'MongoClient' 对象上调用 'find' 方法,它会失败,因为不存在这样的方法。

如何解决? 代码来源:

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' 对象上的方法失败,因为没有这样的方法 存在。

如何解决?

【问题讨论】:

标签: python mongodb


【解决方案1】:

使用 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 版本。

【讨论】:

  • 但我想在表格中显示它的属性而不是字典。请问该怎么做?
  • @NoussaierGrayaa 我对答案做了一些修改。这是你想做的吗?
  • 我想做一个带有接口(tkinter)图的 phyton 应用程序,用于使用 MongoDB 管理汽车租赁 开发汽车管理接口:o 添加汽车,o 修改汽车,o 删除汽车,o 列表具有可用性状态的汽车。 - 开发客户管理界面:o 添加客户,o 修改客户,o 删除客户,o 列出客户的状态。 - 开发管理汽车租赁的界面:o 显示客户租用的汽车
猜你喜欢
  • 2019-10-19
  • 2021-07-05
  • 1970-01-01
  • 2014-10-31
  • 2021-11-02
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
  • 2012-06-30
相关资源
最近更新 更多