Mongoengine, как получить последний элемент в listField
Знакомые питонические правила нарезки myList[-1:][0]
а также myList[-1]
недоступны для Mongoengine listFields, потому что он не поддерживает отрицательные индексы. Есть ли элегантный способ получить последний элемент списка?
Ошибка словоблудия для потомков: IndexError: Cursor instances do not support negative indices
2 ответа
Вы можете получить доступ к последнему элементу с помощью этого кода:
myList[len(myList) - 1]
Не использовать len
на QuerySet, потому что это будет оценивать набор запросов. Джанго документы:
QuerySet оценивается, когда вы вызываете len() для него. Это, как вы могли ожидать, возвращает длину списка результатов.
Если вы просто хотите получить длину набора, используйте count
вместо. Поэтому, отвечая на ваш вопрос, я бы использовал что-то вроде myList[myList.count() - 1]
,