比如获取某篇文章的前一篇和后一篇记录,有时间字段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 的理解有误,希望大家指点迷津
黄舟2017-04-21 10:58:25
首先,语句是没有问题的,但是你用了时间这个类型。
时间类型的话很可能会遇到时间记录是一样的,你检查下你的记录是不是有时间相同的情况。
在条件允许的情况下,你可以用_id
或者配合_id
来避免这种情况。