gpt4 book ai didi

python - Pymongo - 如何将状态作为代表集的 python 字典

转载 作者:IT老高 更新时间:2023-10-28 13:25:59 26 4
gpt4 key购买 nike

我是 mongo 的新手,我正在使用 pymongo。我发现 pymongo 的文档到处都是。

1) 我有一组代表。从 mongo shell 中,如果我运行下面的命令,我会得到我需要的。

sudo mongo 111.111.111.111 --eval "printjson(rs.status())"
MongoDB shell version: 2.2.1
connecting to: 111.111.111.111/test
{
"set" : "hey",
"date" : ISODate("2012-11-10T11:47:58Z"),
"myState" : 1,
"members" : [
{
"_id" : 0,
"name" : "111.111.111.111:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 69189,
"optime" : Timestamp(1352478921000, 1),
"optimeDate" : ISODate("2012-11-09T16:35:21Z"),
"self" : true
}
],
"ok" : 1
}

我需要从 pymongo 获取该信息。

1) 我连接到主节点。我得到 none 但根据上述该节点是主要的:

c = ReplicaSetConnection("111.111.111.111:27017", replicaSet='heythat')
print c.primary
None

2) 我想运行 c.command("status") 但不支持该操作。

那么,我如何使用 pymongo 来返回主目录并以 Python 字典的形式返回状态?

最佳答案

rs.status() 调用 'replSetGetStatus' 管理命令,在 python 中你可以这样做:

conn = ReplicaSetConnection("111.111.111.111:27017", replicaSet='heythat')
conn.admin.command('replSetGetStatus')

Protip:如果你想知道 shell 助手调用了什么命令,那么把括号从函数中去掉以查看代码,例如:

heythat:PRIMARY> rs.status
function () {
return db._adminCommand("replSetGetStatus");
}

关于python - Pymongo - 如何将状态作为代表集的 python 字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13322100/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com