Почему ObjectId ('5efbe85b4aeb5d21e56fa81f') не считается допустимым ObjectId? - PullRequest
0 голосов
/ 13 июля 2020

Я использую PyMon go, и я пытаюсь l oop просмотреть всю коллекцию и отобразить ObjectId на моей Flask веб-странице. Однако, когда я пишу свой метод, я продолжаю получать ошибку «ObjectId ('5efbe85b4aeb5d21e56fa81f')» не является допустимым ObjectId.

Ниже приведен код, который я использую

def get_class_names(self):
        temp = list()
        print("1")

        for document_ in db.classes.find():
            tempstr = document_.get("_id")
            tempobjectid = ObjectId(tempstr)
            temp.append(repr(tempobjectid))
            print("2")
        

        classes = list()
        for class_ in temp:
            classes.append(class_, Classes.get_by_id(class_).name)


        return classes

Как мне исправить это?

Примечание : get_by_id, просто принимает ObjectId и находит его в базе данных.

1 Ответ

0 голосов
/ 14 июля 2020

Строка

  tempstr = document_.get("_id")

уже извлекает ObjectId. Затем вы снова оборачиваете его в другой ObjectId, прежде чем вызывать repr. Если вы print(type(tempstr)), вы увидите, что это ObjectId.

Просто сделайте temp.append(tempstr).

Кстати, вы должны переименовать переменную tempstr в tempId или что-нибудь более подходящее.

...