如何使用pymongo运行MongoDB命令?

2024-05-10 14:43:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要查看到MongodDB的连接列表。我知道如何在mongo控制台中完成:

> db.currentOp(true)

现在我想用pymongo做同样的事情。我试着跟踪,但没用:

^{pr2}$

之后,我在各种组合中使用db.command(),试图将"db.currentOp(true)"传递给它,但没有成功。在

如何正确处理?问题是如果我知道如何从db控制台运行命令,那么如何使用pymongo运行它?有共同的方法吗?在


Tags: 方法命令true列表dbmongo事情command
2条回答

Python驱动程序中的每个方法都遵循PEP 0008,除非我大错特错

在Pymongo中,您需要使用^{}方法来获取有关当前正在运行的操作的信息。在

from pymongo import MongoClient
client = MongoClient(host="myhost.com")
db = client.mydb
infos = db.current_op()

当然,如果要在结果集中列出当前空闲的操作,请将位置或关键字参数include_all设置为True

^{pr2}$

演示:

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命令,驱动程序提供^{}方法

快速浏览一下API,我就知道你在找什么了。在

当我过去使用PyMongo时,我注意到了mongoshell中的camelcase函数(例如当前操作数据库()),直接转换为python语法,因此分贝电流(). 在

试试这个:

from pymongo import MongoClient
client = MongoClient(host="myhost.com")
db = client.mydb
current_ops = db.current_op(True)

相关问题 更多 >