Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I retrieve a document by _id?

Tags:

ruby

mongodb

I'm trying to retrieve a document when I have an object id - however, the query does not work.

@collection = @db.collection('Mylist')
@result = @collection.find({"_id" => params[:id]})

I've tried variations of the query - it always yields empty - however when I try a query on the collection such as below, that would work.

@result = @collection.find({"Exist" => "True"}) 

Why? It is strange that complex queries work but a simple query by _id returns nothing.

If possible, I don't want to use MongoMapper.

Thanks

like image 401
RedNax Avatar asked Dec 30 '22 02:12

RedNax


1 Answers

Found it - you need to wrap it like this -

find({"_id" => Mongo::ObjectId(params[:id])}) 
like image 171
RedNax Avatar answered Jan 19 '23 16:01

RedNax