【发布时间】:2013-10-01 18:38:37
【问题描述】:
我正在制作一个图片库。每个图像都有一个_id,当我查看图像时,我想要接下来的 3 张图像和之前的 3 张图像。我怎样才能在 mongodb 查询中得到这个?我认为我可以使用 _id 排序,因为这是不可排序的。也许使用 mapReduce 或一些特定的查询?
【问题讨论】:
我正在制作一个图片库。每个图像都有一个_id,当我查看图像时,我想要接下来的 3 张图像和之前的 3 张图像。我怎样才能在 mongodb 查询中得到这个?我认为我可以使用 _id 排序,因为这是不可排序的。也许使用 mapReduce 或一些特定的查询?
【问题讨论】:
是的,您可以按_id 排序。使用两个查询:一个用于 3 before 和一个用于 3 after。
python中的一个例子:
my_id = coll.find()[20]['_id']
coll.find({ '_id': {'$lt': my_id}}).sort([('_id', -1)]).limit(3) # before
coll.find({ '_id': {'$gt': my_id}}).sort('_id').limit(3) # after
【讨论】: