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

Python Mongoengine:检查文档是否已在数据库中,python,mongodb,duplicates,mongoengine,Python,Mongodb,Duplicates,Mongoengine,我正在使用mongoengine为MongoDB编写一种初始化例程 我们交付给用户的文档从几个JSON文件读取,并在应用程序开始时使用上述init例程写入数据库 其中一些文档具有唯一密钥,如果将具有重复密钥的文档传递给数据库,则会引发mongoengine.errors.NotUniqueer错误。这根本不是问题,因为我可以使用try-except捕获这些错误 但是,其他一些文档类似于一组值或参数。因此,没有唯一的密钥可供a检查,以防止这些密钥被插入DB两次。 我想我可以阅读所需收藏中的所有现有

我正在使用mongoengine为MongoDB编写一种初始化例程

我们交付给用户的文档从几个JSON文件读取,并在应用程序开始时使用上述init例程写入数据库

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

但是,其他一些文档类似于一组值或参数。因此,没有唯一的密钥可供a检查,以防止这些密钥被插入DB两次。 我想我可以阅读所需收藏中的所有现有文档,如下所示:

docs = MyCollection.objects()
并通过以下方法检查要插入的文档是否已在文档中可用:

doc = MyCollection(parameter='foo')
print(doc in docs)
即使数据库中已经有MyCollectionparameter='foo'文档,也会打印false

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

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

if not MyCollection.objects(parameter='foo'):
    # insert your documents
您可以使用if语句进行检查:

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