Tam*_*mpa 6 python mongodb pymongo
我是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
}
Run Code Online (Sandbox Code Playgroud)
我需要从pymongo获取该信息.
1)我连接到主要.我得到none但是根据上面的节点是主要的:
c = ReplicaSetConnection("111.111.111.111:27017", replicaSet='heythat')
print c.primary
None
Run Code Online (Sandbox Code Playgroud)
2)我想运行c.command("status")但不支持该操作.
那么,如何使用pymongo返回主要,并返回状态作为Python字典?
Ros*_*oss 10
rs.status() 调用'replSetGetStatus'管理命令,在python中你可以这样做:
conn = ReplicaSetConnection("111.111.111.111:27017", replicaSet='heythat')
conn.admin.command('replSetGetStatus')
Run Code Online (Sandbox Code Playgroud)
Protip:如果你想知道shell帮助器调用什么命令,那么将括号从函数中删除以查看代码,例如:
heythat:PRIMARY> rs.status
function () {
return db._adminCommand("replSetGetStatus");
}
Run Code Online (Sandbox Code Playgroud)