2011-09-07 79 views
0

我對Ruby和MongoDB相當陌生。我在Ruby腳本中使用Mongo來存儲和處理集合中的數千個Tweets。我很想提高find命令的易讀性和「rubyness」:在Ruby中查詢MongoDB的更優雅的方式?

require 'rubygems' 
require 'mongo' 

db  = Mongo::Connection.new("localhost").db("db") 
coll = db.collection("tweets") 

cursor = coll.find({ 
    'geo_enabled' => true, 
    'status.text' => { '$exists' => true }, 
    'followers_count' => { 
    '$gte' => 10, 
    '$lt' => 100 } 
}) 

cursor.each_with_index { |row,idx| 
    # do stuff 
} 

mongodb查詢語法讓我瘋狂!是否有更優雅的,類似ruby的方式來執行查詢?

回答

2

您可以使用Mongoid,它具有很好的查詢語法,與ActiveRecord/ActiveRelation非常相似。

+1

謝謝!會嘗試!然而,我無法安裝gem ...'sudo gem install mongoid bson_ext'無限地掛在'安裝ri文檔for mongoid-2.2.0 ...'...我做錯了什麼? – myhd

+1

你可以嘗試安裝沒有文檔的gem'sudo gem install mongoid bson_ext --no-ri --no-rdoc' – binarycode

+0

我擔心我的ruby安裝程序被弄糟;一個demo.rb腳本立即拋出未初始化的常量Mongoid(NameError)',即使我做了'require' mongo和mongoid。難道這是因爲我所有的努力都超出了(可能被打破的)Rails環境嗎?而且......我重視你的幫助,讓我知道你是否認爲我應該將此作爲另一個問題。 K + THX – myhd