【发布时间】:2018-08-02 01:01:07
【问题描述】:
from pymongo.errors import DuplicateKeyError
def insert_duplicate_token(self):
try:
fields = ..
token = Token.create_a_new_document(fields)
token.save()
token = Token.create_a_new_document(fields)
token.save()
self.logger.info('success')
except DuplicateKeyError:
self.logger.exception('Duplicate caught')
except Exception, err:
self.logger.exception('failed...')
return False
引发的错误是 u'试图保存重复的唯一键(E11000重复键错误集合:oauth_test.tokens索引:idx_access_token dup key:{:“gRULKp6sqPWRYDrJNrvaifMhlaC8qvzfZOpqTZLTPxHnQ691vT”})'
但在Exception 中被捕获,而不是在DuplicateKeyError 中
试过了
import pymongo
pymongo.errors - does not exists
这里是stacktrace
Traceback (most recent call last):
File "move_invalid_tokens_worker.py", line 91, in insert_duplicate_token
token.save()
File "/Users/ohadperry/.virtualenvs/oauth/lib/python2.7/site-packages/mongoengine/document.py", line 386, in save
raise NotUniqueError(message % unicode(err))
NotUniqueError: Tried to save duplicate unique keys (E11000 duplicate key error collection: oauth_test.tokens index: access_token_1 dup key: { : "MIeJey0f3rWkedMZacDIjDMB3a04ilrbdieKaZ2BWt0lI0sATP" })
奇怪..
【问题讨论】:
-
你能提供完整的追溯吗?
-
添加到问题正文中
标签: mongodb python-2.7 pymongo