2012-01-31 109 views
0

我在导轨控制台上有些迷惑。 我试图连接到我的数据库以探索它的工作方式。导轨控制台(pry)和mongodb

这一切都很好,当我连接,做基本的东西,像

#get Day database 

Day.first 
Day.last 
Day.find('4f272afce096a47ccd000002') 

但是当我尝试像那些查询:

http://mongoid.org/docs/querying/criteria.html

这就是我得到:

Day.where(name: "monday") 
=> #<Mongoid::Criteria 
    selector: {:name=>"monday"}, 
    options: {}, 
    class: Day, 
    embedded: false> 

那就是我幸运的时候

回答

1

你会得到一个类似游标的“标准”。标准被懒惰地评估,所以你可以把它们连在一起。试试Day.where(name: "monday").first。更具体地说,

“Mongoid中的所有查询都是Criteria,它是对MongoDB动态查询的可链接和延迟评估封装。Criteria仅在需要时触及数据库,例如在迭代结果时以及执行时包装游标以保持内存管理和性能可预测。“ link

+0

好吧,我明白了,但问题很快。我有4天注册在这个分贝。可以以某种方式获得第二,第三等...以与可以先使用或最后使用相同的方式。 – 2012-01-31 08:48:52

+1

我认为Mongoid条件有'Array'复制的接口的一个重要的子集 - 包括[]运算符。所以如果你知道你的结果会在什么顺序中 - 我相信这是默认情况下由他们的“ID”命令 - 你可以做Day.all [0],Day.all [1]等等... – Matt 2012-01-31 21:00:34