我不断收到上述错误。我删除了已设置为唯一的现有数据库字段id
。但是在保存时我得到了以下异常
raise NotUniqueError(message % unicode(err))
NotUniqueError: Tried to save duplicate unique keys (E11000 duplicate key error index: test.users.$id_1 dup key: { : null })
我的user
表格如下,
class Users(db.Document, UserMixin):
name = db.StringField(max_length=50)
email = db.StringField(max_length=255)
password = db.StringField(max_length=255)
city = db.StringField(max_length=125)
active = db.BooleanField(default=True)
company = db.StringField(max_length=255)
type = db.StringField(max_length=15)
confirmed_at = db.DateTimeField()
role = db.ReferenceField(Role)
meta = {'strict': False}
我还尝试使用
取消设置id
属性
cls.objects.update(**{"unset__id": 1})
但它抛出了这个异常,
raise OperationError(u'Update failed (%s)' % unicode(err))
OperationError: Update failed (Mod on _id not allowed)
我只想保存没有id
字段的用户模型。
答案 0 :(得分:2)
如果致电list_indexes()
,它会在id
字段上显示唯一索引。
您还需要使用db.collection.dropIndex()
删除集合中id
字段的唯一索引。
我不确定mongoengine是否提供drop_index
类方法,但您可以从shell中执行此操作。