MongoDB 如何获取某条记录的相邻记录

46次阅读

比如获取某篇文章的前一篇和后一篇记录,有时间字段created

尝试使用下列语句获取文章

# created 是当前文章的创建时间
# 前一篇
prev_post = db.Post.find({ 'created': { '$lt': created } }, sort = [('created', -1)], limit = 1)
# 后一篇
next_post = db.Post.find({ 'created': { '$gt': created } }, sort = [('created', 1)], limit = 1)

运行的结果是这些记录是跳跃使的,有时候中间会跳过好几条记录,不知道如何解决这个问题
我想可能是我对 find 的理解有误,希望大家指点迷津

Vegeta

首先,语句是没有问题的,但是你用了时间这个类型。
时间类型的话很可能会遇到时间记录是一样的,你检查下你的记录是不是有时间相同的情况。
在条件允许的情况下,你可以用_id或者配合_id来避免这种情况。

fenbox

正文完