You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PyMongo中执行db.getUsers()等MongoDB Shell命令获取数据?

PyMongo 执行用户查询及类Shell命令的实现方案

PyMongo 不提供直接解析执行 MongoDB Shell 语法字符串的接口,所有 Shell 中封装的辅助方法,本质都是向MongoDB服务端发送标准的BSON格式命令,只要找到对应方法底层的服务端原生命令,通过PyMongo的command()方法调用即可。

实现db.getUsers()的具体方法

db.getUsers()是Shell侧封装的辅助方法,对应的服务端原生命令为usersInfo,直接调用即可拿到和Shell执行完全一致的返回结果:

from pymongo import MongoClient

# 初始化数据库连接
client = MongoClient("你的MongoDB连接地址")
# 切换到目标数据库,和Shell中use <db>的逻辑一致
db = client["你的目标数据库名"]

# 等价于Shell执行db.getUsers(),返回当前库下的所有用户信息
user_list = db.command("usersInfo")
print(user_list)

常用扩展参数和Shell完全对齐:

  • 查询全实例所有数据库的用户:执行db.command({"usersInfo": {"forAllDBs": True}})
  • 按条件过滤指定用户:执行db.command({"usersInfo": {"user": "指定用户名", "db": "用户所属库"}})
  • 返回用户加密凭证信息:执行db.command({"usersInfo": 1, "showCredentials": True})

其他Shell命令的通用适配逻辑

  • 不要尝试直接把Shell中书写的db.xxx()整段代码作为字符串传入PyMongo执行,PyMongo没有内置Shell语法解析器,这类调用不会生效。
  • 如果你不知道某个Shell方法对应的底层服务端命令,可以打开MongoDB Shell的命令日志,执行对应Shell方法时,控制台会打印实际发往服务端的BSON命令结构体,直接把这个结构体作为参数传入db.command()即可拿到完全一致的返回结果。
  • 绝大多数Shell的数据库级操作方法,都能在官方文档中找到对应的服务端命令映射,直接调用即可。

内容的提问来源于stack exchange,提问作者sherin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 14:42:22