これは、MongoDBの内臓に直接入る方法に関する(おそらく)より良いミニチュートリアルです。これでは特定の問題が解決しない場合がありますが、MongoDBバージョンのSELECT * FROM table
までは到達するはずです。 。
まず、Mongo::Connection
が必要になります 物体。 MongoMapperを使用している場合は、connection
を呼び出すことができます いずれかのMongoMapperモデルのクラスメソッドを使用して接続を取得するか、MongoMapperに直接要求します:
connection = YourMongoModel.connection
connection = MongoMapper.connection
それ以外の場合は、from_uri
を使用すると思います 独自の接続を構築するコンストラクター。
次に、データベースを入手する必要があります。これは、配列アクセス表記であるdb
を使用して行うことができます。 メソッド、またはMongoMapperから現在のメソッドを直接取得します:
db = connection['database_name'] # This does not support options.
db = connection.db('database_name') # This does support options.
db = MongoMapper.database # This should be configured like
# the rest of your app.
これで、光沢のあるMongo::DB
ができました。 インスタンスを手に入れましょう。ただし、おそらくCollection
が必要です。 何か面白いことをするために、配列アクセス表記またはcollection
のいずれかを使用してそれを取得できます 方法:
collection = db['collection_name']
collection = db.collection('collection_name')
これで、SQLテーブルのように動作するものができたので、count
持っているものの数、またはfind
を使用してクエリする :
cursor = collection.find(:key => 'value')
cursor = collection.find({:key => 'value'}, :fields => ['just', 'these', 'fields'])
# etc.
そして今、あなたは本当にあなたが求めているものを手に入れました:オーブンからの熱いMongo::Cursor
興味のあるデータを指します。Mongo::Cursor
isanEnumerable
そのため、each
などの通常の反復友達すべてにアクセスできます。 、first
、map
、そして私の個人的なお気に入りの1つ、each_with_object
:
a = cursor.each_with_object([]) { |x, a| a.push(mangle(x)) }
command
もあります およびeval
Mongo::DB
のメソッド それはあなたが望むことをするかもしれません。