Я работаю над своего рода процедурой инициализации для MongoDB с использованием mongoengine.Mongoengine: проверьте, что документ уже находится в DB
Документы, которые мы доставляем пользователю, считываются из нескольких файлов JSON и записываются в базу данных в начале приложения, используя вышеупомянутую процедуру инициализации.
Некоторые из этих документов имеют уникальные ключи, которые повышают ошибку mongoengine.errors.NotUniqueError
, если документ с дублирующимся ключом передается в БД. Это не проблема, так как я могу поймать эти ошибки, используя try-except
.
Однако некоторые другие документы представляют собой нечто вроде набора значений или параметров. Таким образом, нет уникального ключа, который можно проверить, чтобы не допустить их вставки в БД дважды. я думал, что я мог читать все существующие документы от желаемой коллекции, как это:
docs = MyCollection.objects()
и проверить, является ли документ, который будет вставлен уже доступен в docs
с помощью:
doc = MyCollection(parameter='foo')
print(doc in docs)
который печатает false
даже если в базе уже есть документ MyCollection(parameter='foo')
.
Как добиться дублирования обнаружения без использования уникальных ключей?