【问题标题】:pymongo.errors.DuplicateKeyError: E11000 duplicate key error collection:pymongo.errors.DuplicateKeyError: E11000 重复键错误集合:
【发布时间】:2021-02-07 15:41:45
【问题描述】:

我正在尝试使用 Djongo 库将 MongoDB 与 Django 框架一起使用。我现在陷入了一个特殊问题,我无法在 MongoDB 中存储超过 1 个文档。第一次插入数据后,Django 抛出 pymongo.errors.DuplicateKeyError: E11000 duplicate key error collection:

即使我只有一份文件。我也没有在我的模型中设置“_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()

【问题讨论】:

    标签: python django mongodb django-rest-framework


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2021-09-19
      • 2021-03-04
      • 1970-01-01
      • 2018-07-21
      • 2020-12-08
      • 1970-01-01
      • 2019-04-01
      • 1970-01-01
      • 2017-02-20
      相关资源
      最近更新 更多