Я использую MongoDB и Ruby.
Я заметил, что есть разные DSL: s.
Javascript DSL, используемый с клиентом MongoDB (mongo):
show dbs
use my_db
db.person.find({first_name: "Syd"})
Ruby DSL, используемый с драйвером Ruby для MongoDB:
connection = Mongo::Connection.new
connection.database_names.each { |name| puts name }
connection.database_info.each { |info| puts info.inspect}
person.find({"hello" => "world"})
Затем MongoID / MongoMapper DSL для MongoDB:
Person.desc(:last_name).asc(:first_name)
Person.descending(:last_name).ascending(:first_name)
Person.all(:conditions => { :first_name => "Syd" })
Вопросы:
Правильно ли MongoID / MongoMapper построен поверх Ruby DSL, который построен поверх DSL клиента MongoDB?
Должен ли я изучить все три DSL: или просто сделать свой выбор в зависимости от желаемого уровня абстракции?
Есть ли какие-либо причины, по которым я хотел бы изучить / использовать клиентский DSL MongoDB? Могу ли я использовать его в сценарии или он просто взаимодействует с клиентом (монго)?
Спасибо!