2010-02-10 51 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])