我正在尝试使用pymongo获取副本集中所有成员的列表。你知道吗
import pymongo
conn = pymongo.Connection(replicaset='myreplica')
conf = conn.local.system.replset.find_one()
print conf['members']
这似乎在我拥有的一个环境中起作用,如我所期望的那样返回一个结果列表。你知道吗
>>> print conf['members']
[{u'host': u'srvr-01:27017', u'_id': 0}, {u'priority': 0.5, u'host': u'srvr-02:27017', u'_id': 1}, {u'priority': 0.5, u'host': u'srvr-03:27017', u'_id': 2}]
>>>
然而,在另一个环境中,我得到的只是
>>> print conf['members']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'members'
>>> print conf
{u'_id': ObjectId('5483f1963784952946e3e799')}
>>>
我不明白为什么相同的代码会返回不同的结果。据我所知,环境是彼此的复制品。两个环境中都存在相同的副本集。你知道吗
有人知道为什么我得到的是一个OjbectID而不是一个正确的结果字典返回?谢谢
根据我们的讨论,问题很可能是插入了空记录。我不知道这是怎么发生的,但您可以尝试此方法,只查找具有成员的记录:
相关问题 更多 >
编程相关推荐