Example of work with mongo

Hi there,
I'm newbie here and I have a problem with the connection with MongoDB.
The connection among Rails and MongoDB works, but I don't know, how to
print only one "column" from document.
If I'm trying following a part of code:

puts db["testCollection"].find_one().inspect

So I'will get the entire structure of BSON, as:

{"_id"=>#<BSON::ObjectID:0x118576c ...>, "name"=>"MongoDB",
"info"=>{"x"=>203, "y"=>102}, "type"=>"database", "count"=>1}

But I would like to ask you, how is possible to get only the item eg
"name"... I am searching this information a long time, but no result

I will very glad for everything help, thanks a lot!


Hint: `db["testCollection"].find_one.methods.sort` will give you a lot
of useful information...

Hi Hassan,
thanks for your reply.

This works, but if I am trying to select only one attribut from the
whole document,


so that isn't working. I must to type:

@array=db.collection('people').find() #I'm selecting everything :confused:
for polozka in @array
  puts "#{i}th item is: #{polozka['name']}"

Can you help with this? Thanks in advance!

I think you will find that this will work better. It will return an array of just the people’s names and then you can iterate over them.

arr_person = Person.find(:all).map {|p| p.name}

arr_person.each_with_index{|p,i| puts “#{i} has the name: #{p}”}


I'm not sure if you're trying to get only documents with a given name
or show the names of all documents, but have you gone through this:


It will probably give you a good overall picture.


It would if the OP were using ActiveRecord with a Person object, but
the question is about MongoDB :slight_smile:

db.collection('people').find().each_with_index { |x,y| puts "#{y}
#{x['name']}" }

would actually work...

Simple blog built with MongoDB http://rad-sample.heroku.com
sources https://github.com/alexeypetrushin/rad_sample

More examples:

Save any pure Ruby object (also complex & nested) in MongoDB

+ driver API enhancements (100% backward-compatible with original API),
makes API more friendly & handy, no extra abstraction or complexities
introduced, all things are exactly the same as in MongoDB.