Запросить коллекцию Mongodb для документов, содержащих словарь определенных ключей.Python

Программы на Python
Ответить
Anonymous
 Запросить коллекцию Mongodb для документов, содержащих словарь определенных ключей.

Сообщение Anonymous »

Как можно запросить DictField, чтобы узнать, содержат ли ключи определенную строку. Первоначально использовался словарь, поскольку было проще запрашивать элементы дальше в дереве. Однако при расширении я обнаружил, что некоторые записи, скорее всего, будут содержать несколько одинаковых элементов словаря. Таким образом, я ввел приращение, но теперь нужно изменить запрос.
Структура документа в настоящее время выглядит следующим образом

Код: Выделить всё

{"_id": "ffgame",
"game": "Final Fantasy"
"media": {
"image_1":{"title": "red mage",
"file_size": 2045432},
"movie_1":{"title": "characters dancing",
"file_size": 2045432},
"image_2":{"title": "blue mage",
"file_size": 2045432},
"image_3":{"title": "red mage",
"file_size": 8675309},
}
},
{"_id": "ff2game",
"game": "Final Fantasy 2"
"media": {
"image_1":{"title": "red mage",
"file_size": 8008135},
}
}
Мой исходный код запроса выглядит следующим образом. Если я хочу найти изображения с красным магом, запрос будет простым и понятным.
Я использую Mongoengine в качестве точки входа в mongodb.

Код: Выделить всё

search_term = "red mage"
file_type = "image"

query = Q(**{f"media.{file_type}.title": search_term})
found_documents = GameDocument.objects(query)
но поскольку file_type теперь увеличивается для учета более чем одного изображения, это больше не работает.

Подробнее здесь: https://stackoverflow.com/questions/793 ... specific-k
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»