如何通过_id检索文档?

时间:2010-02-10 08:04:56

标签: ruby mongodb

当我有对象ID时,我正在尝试检索文档 - 但是,查询不起作用。

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

我尝试了查询的变体 - 它总是产生空 - 但是当我尝试对下面的集合进行查询时,这会有效。

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

为什么呢?奇怪的是,复杂的查询有效,但_id的简单查询不会返回任何内容。

如果可能,我不想使用MongoMapper。

由于

3 个答案:

答案 0 :(得分:5)

找到它 - 你需要像这样包装它 -

find({"_id" => Mongo::ObjectId(params[:id])}) 

答案 1 :(得分:3)

find(:_id => BSON::ObjectID(params[:id])

答案 2 :(得分:2)

这也有效:  @ coll.find_one(ObjectID.from_string(PARAMS [:ID]))

相关问题