How to query MongoDB directly from Ruby instead of using Mongoid? How to query MongoDB directly from Ruby instead of using Mongoid? mongodb mongodb

How to query MongoDB directly from Ruby instead of using Mongoid?


If you're using Mongoid 3, it provides easy access to its MongoDB driver: Moped. Here's an example of accessing some raw data without using Models to access the data:

db = Mongoid::Sessions.default# inserting a new documentcollection = db[:collection_name]collection.insert(name: 'my new document')# finding a documentdoc = collection.find(name: 'my new document').first# iterating over all documents in a collectioncollection.find.each do |document|  puts document.inspectend


For Mongoid 5:

db = Mongoid::Clients.defaultcollection = db[:collection_name]

Now we can perform queries on the collection


Here how you do it (This would work for 2+ and 3+ as well)

1) All your Model exhibit this behavior you have include Mongoid::Document inside all your model so technically each document is mapped in monogodb thru moped or mongodb-ruby driver via mongoid

so If you have model Like

class PerformerSource   include Mongoid::Document  ## Definitionend

Now you can run Mongo Query using the driver (Moped or Mongodb-ruby driver) like this

PerformerSource.collection.insert("something")## where something is json document you want to insert

This would give u the moped (if using mongoid 3) connection for that document

2) You can also do it something like this

 Mongoid::Sessions.default.collections.find { |document| document.name == "performer_sources"}.insert("something")

How to more on mongo query and how mongoid map those using moped u can follow this section of querying where it describe how query is acheived internally via moped

Hope this help