MongoDB:在两个流程实例中使用findAndModify时,获取"Client Cursor :: yield无法解锁b/c的递归锁定"警告

And*_*aev 15 mongodb

我正在使用:MongoDB 1.6.4,Python 2.6.6,PyMongo 1.9,Ubuntu 10.10

当在两个流程实例中使用findAndModify时,我经常在我的日志中收到"Client Cursor :: yield无法解锁b/c的递归锁定"警告.当我只使用一个进程警告时不会出现.

我怎样才能解决这个问题?

**2013年3月8日更新**

到目前为止,这个问题有解决方法吗?

And*_*aev 22

这通常意味着您在查询中使用的字段上缺少索引.

我不知道这个警告的技术细节,但根据我的经验,在查询字段上添加索引有帮助.检查在findAndModify的查询部分中使用的字段是否有索引.还运行db.collection.find().explain()来检查它是否使用索引.

感谢pingw33n帮助解决这个问题.