开发者

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]))

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜