#pymongo
#pymongo
Вопрос:
def av():
for row in info.aggregate([{"$project": {"firstname": 1}}]):
list=[]
list.append(row)
list=str(list)
return list
print(av())
здесь, если вместо записи ‘return list’ я напишу ‘print (list)’, это даст мне все необходимые данные
, но если я попытаюсь их вернуть. на выходе выдается только первая строка данных (коллекция)
Поскольку я хочу вызвать функцию позже в программе, чтобы задать условия if для проверки, присутствует ли данный вывод в данных или нет
, я должен возвращать, а не печатать.
Пожалуйста, скажите мне, чего мне не хватает
, или есть лучший способ сделать то же самое
Ответ №1:
Проблема в том, что return завершает цикл for на первой итерации, а print — нет. Напишите возвращаемый список на том же уровне, что и цикл for. кроме того, вы каждый раз очищаете список, определяете его перед циклом.
def av():
list=[]
for row in info.aggregate([{"$project": {"firstname": 1}}]):
list.append(row)
list=str(list)
return list
print(av())