为什么 "ObjectId('5efbe85b4aeb5d21e56fa81f')" 不被视为有效的 ObjectId?
Why is "ObjectId('5efbe85b4aeb5d21e56fa81f')" not considered a valid ObjectId?
我正在使用 PyMongo,我正在尝试遍历整个集合并将 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,在数据库中查找。
行
tempstr = document_.get("_id")
已经检索到 ObjectId
。然后在调用 repr
之前将其再次包装在另一个 ObjectId
中。如果你 print(type(tempstr))
,你会看到它是一个 ObjectId
。
就做temp.append(tempstr)
.
顺便说一句,您应该将变量 tempstr
重命名为 tempId
或更合适的名称。
我正在使用 PyMongo,我正在尝试遍历整个集合并将 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,在数据库中查找。
行
tempstr = document_.get("_id")
已经检索到 ObjectId
。然后在调用 repr
之前将其再次包装在另一个 ObjectId
中。如果你 print(type(tempstr))
,你会看到它是一个 ObjectId
。
就做temp.append(tempstr)
.
顺便说一句,您应该将变量 tempstr
重命名为 tempId
或更合适的名称。