2011-09-07 54 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