Почему функция find возвращает только одно значение при поиске в базе данных?

  • 11 сентября 2023 г. 17:06
Ответы на вопрос 2
Функция find_one возвращает только один документ, который соответствует заданным критериям поиска. В вашем случае, функция find_one возвращает None, потому что в коллекции factions нет документов с полем "serverid" равным значениям, указанным в массиве "fractions" в коллекции пользователей.

Проверьте, что значения в поле "fractions" в коллекции пользователей совпадают с значениями поля "_id" в коллекции серверов. Убедитесь, что поле "serverid" в коллекции factions имеет правильное значение типа данных (число integer).

Также, обратите внимание, что в вашем коде вы добавляете поле embed с данными вне цикла for. Вам следует добавить это поле внутри цикла, чтобы создавать отдельное поле для каждого значения "fractions" в коллекции пользователей.
Массив id может не подходить ему по формату или типу данных. Формат factions.find_one({'serverid': int(i)}) выглядит странно, если factions - это коллекция серверов, то почему вы ищете id, используя {'serverid': int(i)}, а не просто int(i)? Я не очень разбираюсь в MongoDB, но это вызывает некоторую непонятку.
Похожие вопросы