pymongo.errors.DuplicateKeyError: E11000 重复键错误集合:

时间:2021-02-07 07:28:25

标签: python django mongodb django-rest-framework

我正在尝试使用 Djongo 库将 MongoDB 与 Django 框架结合使用。我现在遇到了一个特定的问题,我不能在 MongoDB 中存储 1 个以上的文档。第一次数据插入后,Django 抛出 pymongo.errors.DuplicateKeyError: E11000 重复键错误集合:

即使我只有一份文件。此外,我没有在我的模型中设置“_id”字段。所以是 Djongo 为我做的。

我的Model.py

from djongo import models


# Create your models here.
class Data(models.Model):
    company_name = models.CharField(max_length=200)
    company_url = models.CharField(max_length=200)
    company_logo = models.CharField(max_length=200)
    objects = models.DjongoManager()

1 个答案:

答案 0 :(得分:1)

在您的数据类中添加“_id”值。

由于您还没有添加,Djongo 会自动为此创建一个空值。所以它第一次起作用。当您尝试插入第二个文档时,它会再次创建一个“_id”值为 null 的文档,从而引发重复的键错误。 在您的数据类中添加这一行

_id = models.ObjectIdField(auto_created=True, unique=True, primary_key=True)

注意:- 确保使用名称“_id”而不是 MongoDB 中的“id”,它是“_id”而不是“id”