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

For Mongoid 5:

db = Mongoid::Clients.default

collection = 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
  ## Definition

end

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


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 document
collection = db[:collection_name]
collection.insert(name: 'my new document')

# finding a document
doc = collection.find(name: 'my new document').first

# iterating over all documents in a collection
collection.find.each do |document|
  puts document.inspect
end