如何使用 pymongo 运行 MongoDB 命令?
How to run MongoDB commands with pymongo?
我需要查看与 MongodDB 的连接列表。我知道如何在 mongo 控制台中执行此操作:
> db.currentOp(true)
现在我想用 pymongo 做同样的事情。我尝试了以下但没有成功:
from pymongo import MongoClient
client = MongoClient(host="myhost.com")
db = client.mydb
之后我在各种组合中使用了 db.command()
试图将 "db.currentOp(true)"
传递给它但没有成功。
如何正确操作?问题是如果我知道如何从数据库控制台 运行 使用 pymongo 命令,如何 运行 ?有通用的方法吗?
Python 驱动程序中的每个方法都遵循 PEP 0008 除非我严重错误
在 Pymongo 中,您需要使用 .current_op()
方法来获取当前操作的信息 运行。
from pymongo import MongoClient
client = MongoClient(host="myhost.com")
db = client.mydb
infos = db.current_op()
当然,如果您想在结果中列出当前空闲的操作,请将位置或关键字参数 include_all
设置为 True
infos = db.current_op(True) # or infos = db.current_op(include_all=True)
演示:
In [8]: db.current_op()
Out[8]:
{'inprog': [{'active': True,
'client': '127.0.0.1:54268',
'connectionId': 2,
'desc': 'conn2',
'lockStats': {},
'locks': {},
'microsecs_running': 45,
'ns': 'admin.$cmd',
'numYields': 0,
'op': 'command',
'opid': 793,
'query': {'$all': False, 'currentOp': 1},
'secs_running': 0,
'threadId': '140272266217216',
'waitingForLock': False}],
'ok': 1.0}
要发出 MongoDB 命令,驱动程序提供 .command()
方法
快速浏览 API 可以找到我认为您正在寻找的内容。
过去使用 PyMongo 时,我注意到 mongo shell 中的驼峰函数(例如 db.currentOp())直接转换为python 语法,所以它变成 db.current_op().
试试这个:
from pymongo import MongoClient
client = MongoClient(host="myhost.com")
db = client.mydb
current_ops = db.current_op(True)
我需要查看与 MongodDB 的连接列表。我知道如何在 mongo 控制台中执行此操作:
> db.currentOp(true)
现在我想用 pymongo 做同样的事情。我尝试了以下但没有成功:
from pymongo import MongoClient
client = MongoClient(host="myhost.com")
db = client.mydb
之后我在各种组合中使用了 db.command()
试图将 "db.currentOp(true)"
传递给它但没有成功。
如何正确操作?问题是如果我知道如何从数据库控制台 运行 使用 pymongo 命令,如何 运行 ?有通用的方法吗?
Python 驱动程序中的每个方法都遵循 PEP 0008 除非我严重错误
在 Pymongo 中,您需要使用 .current_op()
方法来获取当前操作的信息 运行。
from pymongo import MongoClient
client = MongoClient(host="myhost.com")
db = client.mydb
infos = db.current_op()
当然,如果您想在结果中列出当前空闲的操作,请将位置或关键字参数 include_all
设置为 True
infos = db.current_op(True) # or infos = db.current_op(include_all=True)
演示:
In [8]: db.current_op()
Out[8]:
{'inprog': [{'active': True,
'client': '127.0.0.1:54268',
'connectionId': 2,
'desc': 'conn2',
'lockStats': {},
'locks': {},
'microsecs_running': 45,
'ns': 'admin.$cmd',
'numYields': 0,
'op': 'command',
'opid': 793,
'query': {'$all': False, 'currentOp': 1},
'secs_running': 0,
'threadId': '140272266217216',
'waitingForLock': False}],
'ok': 1.0}
要发出 MongoDB 命令,驱动程序提供 .command()
方法
快速浏览 API 可以找到我认为您正在寻找的内容。
过去使用 PyMongo 时,我注意到 mongo shell 中的驼峰函数(例如 db.currentOp())直接转换为python 语法,所以它变成 db.current_op().
试试这个:
from pymongo import MongoClient
client = MongoClient(host="myhost.com")
db = client.mydb
current_ops = db.current_op(True)