2010-02-10 91 views
4

我试图检索文档时,我有一个对象ID - 但是,查询不起作用。如何通过_id检索文档?

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

我试着查询的变化 - 它总是产生空 - 但是当我尝试对集合的查询,如下面,将工作。

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

为什么?奇怪的是,复杂的查询可以工作,但是_id的简单查询不会返回任何结果。

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

感谢

+0

找到它 - 你需要用它像这样 - 找到({ “_ ID”=>蒙戈::的ObjectId(PARAMS [:编号])}) – RedNax 2010-02-10 08:25:18

+0

看起来你找到了答案:)你应该提交作为下面的“答案”。 – 2010-02-23 22:02:48

回答

5

找到它 - 你需要用它像这样 -

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

这也将工作: @ coll.find_one(ObjectID.from_string(PARAMS [:ID))

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