pymongo无法与多线程一起使用

以下代码在python2.6或python3.2中均不起作用.

测试代码:

import pymongo

class A(Thread):  
        def __init__(self):  
            Thread.__init__(self)  
            self.conn = pymongo.Connection('localhost',30000)  
            self.mongo = self.conn.puppet  
            self.mongo.authenticate('test','123')  
        def run(self):  
            print self.mongo.href.find_one()  

A().start()

异常消息:

 OperationFailure: database error: unauthorized db:puppet lock
   type:-1 client:127.0.0.1  

任何想法如何解决这一问题?

解决方法:

这可能是由于pymongo处理身份验证的方式所致,请参阅note in the API docs-Pymongo不在线程之间缓存身份验证凭据,因此每个线程必须分别进行身份验证.

上一篇:使用Python插入MongoDB的编码问题


下一篇:python-如何使用pymongo迭代或删除MongoDb数组列表项?