在 MongoEngine 查询中查找下一个和上一个文档
Finding the next and previous documents in a MongoEngine query
我想在按 属性.
排序的 MongoEngine 查询中获取下一个和上一个文档
query = ImageModel \
.objects(dataset_id=dataset.id, deleted=False) \
.order_by('file_name') \
.all()
images = list(query)
image_index = images.index(image)
image_previous = None if image_index - 1 < 0 else images[image_index - 1].id
image_next = None if image_index + 1 == len(images) else images[image_index + 1].id
上面提供的这段代码是我当前的实现,效率非常低。有人有什么想法吗?
我按以下方式进行:
images = ImageModel.objects(dataset_id=dataset.id, deleted=False)
pre = images.filter(file_name__lt=image.file_name).order_by('-file_name').first()
nex = images.filter(file_name__gt=image.file_name).order_by('file_name').first()
我想在按 属性.
排序的 MongoEngine 查询中获取下一个和上一个文档query = ImageModel \
.objects(dataset_id=dataset.id, deleted=False) \
.order_by('file_name') \
.all()
images = list(query)
image_index = images.index(image)
image_previous = None if image_index - 1 < 0 else images[image_index - 1].id
image_next = None if image_index + 1 == len(images) else images[image_index + 1].id
上面提供的这段代码是我当前的实现,效率非常低。有人有什么想法吗?
我按以下方式进行:
images = ImageModel.objects(dataset_id=dataset.id, deleted=False)
pre = images.filter(file_name__lt=image.file_name).order_by('-file_name').first()
nex = images.filter(file_name__gt=image.file_name).order_by('file_name').first()