Inilah (mungkin) mini-tutorial yang lebih baik tentang cara masuk langsung ke inti MongoDB Anda. Ini mungkin tidak menyelesaikan masalah spesifik Anda tetapi itu akan membawa Anda sejauh versi MongoDB dari SELECT * FROM table
.
Pertama-tama, Anda memerlukan Mongo::Connection
obyek. Jika Anda menggunakan MongoMapper maka Anda dapat memanggil connection
class pada salah satu model MongoMapper Anda untuk mendapatkan koneksi atau tanyakan langsung kepada MongoMapper:
connection = YourMongoModel.connection
connection = MongoMapper.connection
Kalau tidak, saya kira Anda akan menggunakan from_uri
konstruktor untuk membangun koneksi Anda sendiri.
Maka Anda perlu mendapatkan database, Anda dapat melakukannya menggunakan notasi akses array, db
metode, atau dapatkan yang sekarang langsung dari 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.
Sekarang Anda memiliki Mongo::DB
yang bagus dan mengkilap contoh di tangan Anda. Tapi, Anda mungkin menginginkan Collection
untuk melakukan sesuatu yang menarik dan Anda bisa mendapatkannya menggunakan notasi akses array atau collection
metode:
collection = db['collection_name']
collection = db.collection('collection_name')
Sekarang Anda memiliki sesuatu yang berperilaku seperti tabel SQL sehingga Anda dapat count
berapa banyak hal yang dimilikinya atau kueri menggunakan find
:
cursor = collection.find(:key => 'value')
cursor = collection.find({:key => 'value'}, :fields => ['just', 'these', 'fields'])
# etc.
Dan sekarang Anda memiliki apa yang sebenarnya Anda cari:keluar panas dari oven Mongo::Cursor
yang menunjuk pada data yang Anda minati. Mongo::Cursor
isan Enumerable
jadi Anda memiliki akses ke semua teman yang berulang seperti each
, first
, map
, dan salah satu favorit pribadi saya, each_with_object
:
a = cursor.each_with_object([]) { |x, a| a.push(mangle(x)) }
Ada juga command
dan eval
metode pada Mongo::DB
yang mungkin melakukan apa yang Anda inginkan.