Я определил классы MongoEngine, которые отображаются с помощью MongoDB. Когда я пытаюсь получить доступ к данным с помощью MongoEngine, в конкретном коде это не удается с первой попытки, но успешно возвращает данные со второй попытки с тем же кодом. Выполнение кода в терминале Python
from Project.Mongo import User
user = User.objects(username = 'xyz@xyz.com').first()
from Project.Mongo import Asset
Asset.objects(org = user.org)
Последняя строка кода, генерирующая следующую ошибку при первой попытке.
Traceback (последний вызов был последним):
Файл "", строка 1, в
Файл "/usr/local/lib/python3.5/dist-packages/mongoengine/queryset/manager.py", строка 37, в получить
queryset = queryset_class (owner, owner._get_collection ())
Файл "/usr/local/lib/python3.5/dist-packages/mongoengine/document.py", строка 209, в _get_collection
cls.ensure_indexes ()
Файл "/usr/local/lib/python3.5/dist-packages/mongoengine/document.py", строка 765, в sure_indexes
collection.create_index (поля, фон = фон, ** опции)
Файл "/usr/local/lib/python3.5/dist-packages/pymongo/collection.py", строка 1754, в create_index
self .__ create_index (ключи, kwargs, сессия, ** cmd_options)
Файл "/usr/local/lib/python3.5/dist-packages/pymongo/collection.py", строка 1656, в __create_index
сессия = сессия)
Файл "/usr/local/lib/python3.5/dist-packages/pymongo/collection.py", строка 245, в _команде
retryable_write = retryable_write)
Файл "/usr/local/lib/python3.5/dist-packages/pymongo/pool.py", строка 517, в команде
сортировки = сортировка)
Файл "/usr/local/lib/python3.5/dist-packages/pymongo/network.py", строка 125, в команде
parse_write_concern_error = parse_write_concern_error)
Файл "/usr/local/lib/python3.5/dist-packages/pymongo/helpers.py", строка 145, в _check_command_response
поднять OperationFailure (msg% errmsg, код, ответ)
pymongo.errors.OperationFailure: Index: {v: 2, ключ: {org: 1, _fts: "text", _ftsx: 1}, имя: "org_1_name_content_text_description_text_content_text_tag_content_text_remote.source_text", ns: "digile.set:": содержимое: 3, описание: 1, name_content: 10, remote.owner__name: 20, remote.source: 2, tag_content: 2}, default_language: «english», фон: false, language_override: «language», textIndexVersion: 3} уже существует с различными параметрами: {v: 2, ключ: {org: 1, _fts: "text", _ftsx: 1}, имя: "org_1_name_text_description_text_content_text_tag_content_text_remote.source_text", ns: "digitile.asset", default_language: "english", background: false, весовые коэффициенты: {content: 3, description: 1, name: 10, remote.owner__name: 20, remote.source: 2, tag_content: 2}, language_override: "language", textIndexVersion: 3}
Когда я пытаюсь повторить ту же самую последнюю строку, это дает точный результат
Я использую Python 3.5.2
пимонго 3.7.2
mongoengine 0.10.6