pymongo 获取所有集合的键
pymongo get keys of all collections
我需要一个代码来显示所有集合名称的主键。我希望能够在不同的 mongo 实例上使用它,所以我不想使用集合的确切名称。
import pymongo
import sys
import json
from pymongo import MongoClient
if __name__ == '__main__':
client = pymongo.MongoClient("localhost", 27017, maxPoolSize=50)
db = client.list_database_names()
document = db.collection_name.find_one()
for k in document:
print(k)
但是当我运行它时,它输出
Traceback (most recent call last):
File "bla.py", line 12, in <module>
document = db.collection_name.find_one()
AttributeError: 'list' object has no attribute 'collection_name'
这里有什么问题?
db
是所有数据库名称的列表
您必须为每个数据库名称获取一个数据库对象。
然后你必须得到每个数据库的所有集合。
您将能够打印每个集合的第一个文档
import pymongo
import sys
import json
from pymongo import MongoClient
if __name__ == '__main__':
client = pymongo.MongoClient("localhost", 27017, maxPoolSize=50)
list_databases = client.list_database_names()
for database_name in list_databases:
# Create a Database object
db = client.get_database(database_name)
# Get list of collections names in that database
list_collections = db.collection_names()
for collection_name in list_collections:
# Create a colection object
collection = db.get_collection(collection_name)
# Print the first element of that collection
print(collection.find_one())
我需要一个代码来显示所有集合名称的主键。我希望能够在不同的 mongo 实例上使用它,所以我不想使用集合的确切名称。
import pymongo
import sys
import json
from pymongo import MongoClient
if __name__ == '__main__':
client = pymongo.MongoClient("localhost", 27017, maxPoolSize=50)
db = client.list_database_names()
document = db.collection_name.find_one()
for k in document:
print(k)
但是当我运行它时,它输出
Traceback (most recent call last):
File "bla.py", line 12, in <module>
document = db.collection_name.find_one()
AttributeError: 'list' object has no attribute 'collection_name'
这里有什么问题?
db
是所有数据库名称的列表
您必须为每个数据库名称获取一个数据库对象。
然后你必须得到每个数据库的所有集合。
您将能够打印每个集合的第一个文档
import pymongo
import sys
import json
from pymongo import MongoClient
if __name__ == '__main__':
client = pymongo.MongoClient("localhost", 27017, maxPoolSize=50)
list_databases = client.list_database_names()
for database_name in list_databases:
# Create a Database object
db = client.get_database(database_name)
# Get list of collections names in that database
list_collections = db.collection_names()
for collection_name in list_collections:
# Create a colection object
collection = db.get_collection(collection_name)
# Print the first element of that collection
print(collection.find_one())