首页 > 编程问答 >用于自动访问 MongoDB Atlas CLI 的 Python 脚本

用于自动访问 MongoDB Atlas CLI 的 Python 脚本

时间:2024-07-24 03:53:49浏览次数:15  
标签:python mongodb command-line-interface

我想编写一个 Python 脚本,以便普通用户可以访问他的数据库并从他的终端执行 CRUD 操作。我正在查看官方文档,但我有点迷失。有人可以给我指点基本教程来开始吗?


当然,以下是如何构建 Python 脚本来访问 MongoDB Atlas CLI 的基本教程:

先决条件:

  1. MongoDB Atlas 账户: 你需要一个具有活跃集群的 MongoDB Atlas 账户。 https://www.mongodb.com/cloud/atlas/register
  2. MongoDB CLI: 你需要在系统上安装并配置 MongoDB CLI。 https://www.mongodb.com/docs/mongodb-shell/install/
  3. Python 3: 确保你的系统上安装了 Python 3。

步骤:

  1. 导入必要的库:

python import subprocess import getpass

  • subprocess 用于在我们的 Python 脚本中运行命令行命令。
  • getpass 用于安全地提示输入密码,而不会回显到终端。

  • 从用户处获取凭据:

python atlas_public_key = input("请输入你的 Atlas 公钥: ") atlas_private_key = getpass.getpass("请输入你的 Atlas 私钥: ")

  • 这将提示用户输入他们的 Atlas 公钥和私钥。
  • 使用 getpass.getpass() 来屏蔽私钥输入,以提高安全性。

  • 构建 CLI 命令:

```python def run_mongo_cli_command(command): """使用提供的命令运行 MongoDB CLI 命令。""" full_command = [ "mongocli", "--api-key", atlas_public_key, "--api-key-secret", atlas_private_key, ] + command.split() try: result = subprocess.run(full_command, capture_output=True, text=True, check=True) print(result.stdout) except subprocess.CalledProcessError as e: print(f"错误:{e.stderr}")

```

  • 此函数将 run_mongo_cli_command 定义为接收命令字符串。
  • 它将提供的命令与用于身份验证的 MongoDB CLI 命令、公钥和私钥连接起来。
  • 它使用 subprocess.run() 来执行命令,捕获输出,并在出现错误时引发错误。

  • 示例用法(CRUD 操作):

```python # 列出所有数据库 run_mongo_cli_command("atlas cluster list")

# 在特定集群上获取数据库列表 run_mongo_cli_command("atlas dbusers list --clusterName <你的集群名称>")

# 创建新用户(用你的值替换占位符) run_mongo_cli_command( f"atlas dbusers create --username <用户名> --password <密码> --role readWriteAnyDatabase --authenticationDatabase admin -o json --clusterName <你的集群名称>" )

# 在集合中查找文档(用你的值替换占位符) run_mongo_cli_command( f"atlas db query --clusterName <你的集群名称> --database <你的数据库名称> --collection <你的集合名称> --query '{{}}'" ) ```

  • 用实际的集群名称、数据库名称、集合名称等替换占位符 <你的集群名称> <你的数据库名称> <你的集合名称>
  • 这些示例展示了如何使用 run_mongo_cli_command 函数来执行各种 MongoDB CLI 操作。
  • 可以根据需要添加更多命令。

  • 将代码保存在 Python 文件中(例如, mongo_atlas_cli.py )。

  • 从你的终端运行脚本:

bash python mongo_atlas_cli.py

安全注意事项:

  • 永远不要在你的脚本中硬编码 API 密钥。 以安全的方式提示输入或使用环境变量。
  • 谨慎存储你的 API 密钥,并定期轮换。
  • 限制脚本的访问权限,尤其是在生产环境中运行时。

此教程提供了使用 Python 脚本与 MongoDB Atlas CLI 交互的基本框架。你可以通过探索 MongoDB CLI 文档来扩展此脚本并添加更多功能: https://www.mongodb.com/docs/mongodb-shell/reference/command/

标签:python,mongodb,command-line-interface
From: 78784857

相关文章

  • Python实现简单学生登陆系统
     代码:importhashlibclassStudent:def__init__(self,username,password):#初始化学生对象,存储用户名和加密后的密码self.username=usernameself.password=hashlib.sha256(password.encode()).hexdigest()defcheck_passwo......
  • python猜数字游戏
    好的,下面是一个简单的小游戏代码示例,使用Python编写。这个游戏是一个猜数字游戏,玩家需要猜一个1到100之间的随机数。importrandomdefguess_number_game():print("欢迎来到猜数字游戏!")print("我已经想好了一个1到100之间的数字,请你猜一猜。")secret_num......
  • 【Python正则表达式】:文本解析与模式匹配
    文章目录1.正则表达式2.re模块3.修饰符3.元字符3-1字符匹配元字符3-2重复次数限定元字符3-3字符集合匹配元字符3-4分组元字符3-5边界匹配元字符3-6字符类别匹配元字符4.技巧4-1贪婪与非贪婪5.案例1.正则表达式正则表达式面向什么样的问题?1、判断一个字......
  • 仅需增加2行代码,Python量化策略速度提升20+倍!
    今天分享一个Python量化策略加速的小技巧,不用修改原有代码,只需在原有代码里新增2行,策略执行速度便可能提高20+倍,正文开始~现如今,无论是入门量化投资,还是做数据分析、机器学习和深度学习,Python成为了首选编程语言,直观的原因就是容易上手和资源丰富,但Python有个根深蒂固的标签,......
  • Python基础-Anaconda,Spyder,数据类型
    1、Python与Anaconda在想使用Python之前需先安装Python,以及PythonIDE和Python的库,而用Anaconda就可以一键安装。Anaconda包含了Python,常用的python库以及IDE,还具有强大的环境和python包的管理能力。PythonIDE(IntegratedDevelopmentEnvironment,集成开发环境)是一个为开发......
  • python实现图像特征提取算法2
    python实现广义Hough变换算法、Hough变换算法1.广义Hough变换算法详解算法步骤Python实现详细解释优缺点2.Hough变换算法详解算法步骤Python实现详细解释优缺点实现广义Hough变换算法(GeneralizedHoughTransform)可以用于检测任意形状的......
  • 使用Python自动备份MC服务器存档至轻量COS
    在存档意外炸档时,备份就显得尤为重要。本文以Minecraft1.18.2为例,教你如何使用轻量搭建一个MC服务器,并定时将存档备份入轻量COS,节省本地空间。前期准备一台安装了Linux原版系统的轻量(因为目前轻量COS仅支持挂载Linux系统镜像,不支持容器或自定义镜像)一个和轻量大区相同的轻......
  • python中的数据类型-适合新手-比较完善(写了好久……)
    作者的话        首先,我先申明,以下思路仅为个人理解,如有不同,望指导,谢谢。        数据类型它是什么,有什么用,怎么用就是它的全部内容,知识框架串联起来之后就是这三部分内容,没有什么特别的东西就只是单纯的可以培养这个习惯,之后就可以很轻松的学习使用之后串联......
  • 090、Python 写Excel文件及一些操作(使用xlwt库)
    要写Excel文件,我们需要使用第三方库。xlwt库是一个常用的写Excel的第三方库,它同时支持.xls和.xlsx。要使用第三方库,首选需安装:pipinstallxlwtxlutils安装完成后,我们就可以引入库来进行相关操作了。使用xrwt库写Excel文本,可以按以下步骤操作:1、第一步:创建工作簿(Wor......
  • python每日学习:numpy库的用法(上)
    python每日学习10:numpy库的用法(上)下载numpy库pipinstallnumpy检测环境是否安装importnumpyimportnumpyasnpa=np.arange(10)print(a)array创建数组名称描述dtype数组元素的数据类型,可选copy对象是否需要复制,可选order创建数组的样式,C为行方向,F为列方向,A......