python - Mongoengine:检查文档是否已在数据库中

标签 python mongodb duplicates mongoengine

我正在使用 mongoengine 为 MongoDB 开发一种初始化例程。

我们向用户提供的文档是从多个 JSON 文件中读取的,并在应用程序启动时使用上述 init 例程写入数据库。

其中一些文档具有唯一键,如果将具有重复键的文档传递到数据库,则会引发 mongoengine.errors.NotUniqueError 错误。这根本不是问题,因为我能够使用 try- except 捕获这些错误。

但是,其他一些文档类似于一堆值或参数。因此,没有可以检查的唯一键以防止它们被插入数据库两次。 我想我可以从所需的集合中读取所有现有文档,如下所示:

docs = MyCollection.objects()

并检查要插入的文档是否已在 docs 中使用:

doc = MyCollection(parameter='foo')
print(doc in docs)

即使数据库中已经存在 MyCollection(parameter='foo') 文档,也会打印 false

如何在不使用唯一键的情况下实现重复检测?

最佳答案

您可以使用 if 语句进行检查:

if not MyCollection.objects(parameter='foo'):
    # insert your documents

关于python - Mongoengine:检查文档是否已在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34003335/

相关文章:

python - 防止 Django 1.4.3 中 post_save 的重复信号

Python:相当于 Matlab 的 svds(A, k) 用于大型数组?

python - 如何扩展和填充黑白图像的第三个暗角

node.js - Mongoose 无法连接到 Mlab

mongodb - 通过数据库获取opcounter

python - 从 PySpark 中的数据框中删除重复项

java - 如何处理重复的 block

python - 使用 Python 将电子邮件的主题和正文提取到字典中

python - Python 中快速简单的文件对话框?

javascript - 如何将排序操作后的序列号插入到mongoDB中?