繁体   English   中英

pymongo 获取所有 collections 的密钥

[英]pymongo get keys of all collections

我需要一个代码来显示所有集合名称的主键。 我希望能够在不同的 mongo 实例上使用它,所以我不想使用 collections 的确切名称。

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是所有数据库名称的列表 您必须为每个数据库名称获取数据库 object。 然后你必须得到每个数据库的所有集合。 您将能够打印每个集合的第一个文档

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())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM