我有Images
存储在mongoDB中。它们按“created_at”排序。用mongoId获取“previous”文档
现在,当我打开一个单一的项目与Image.find("documentID")
我要访问之前的文件和一个仅这一项后,基于created_at
顺序。
对于这一点,我有两个方法和image.rb
一个default_scope:
default_scope asc(:created_at)
def previous_image
self.class.last(:conditions => {:created_at.lt => created_at})
end
def next_image
self.class.first(:conditions => {:created_at.gt => created_at})
end
是否有MongoDB中原生的方式在当前文档之前和之后访问该文档?
有没有更好的方式来创建这样的命名范围与mongoID在rails中访问上一个和下一个项目,也考虑到性能(一个图像不查询三次)?
编辑:在 “previous_image” 应最后使用,不是第一。这解决了“跳过”项目的错误。不过,关于实现这一点的正确方法的问题依然存在。
我实现了一个有点类似的解决方案,因为你的代码('{$ lt:mongoid}')给出了语法错误。 – berkes 2011-03-28 10:50:58
我来自PHP世界,尽力让Ruby尽可能多地友好。 – jhavrda 2011-03-28 19:18:32