How can I retrieve a document by _id?
I'm trying to retr开发者_Go百科ieve 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
Found it - you need to wrap it like this -
find({"_id" => Mongo::ObjectId(params[:id])})
find(:_id => BSON::ObjectID(params[:id])
This would also work: @coll.find_one(ObjectID.from_string(params[:id]))
精彩评论