如何通过_id检索文档?

4
我正在尝试通过对象ID检索文档,但是查询无法工作。
@collection = @db.collection('Mylist')
@result = @collection.find({"_id" => params[:id]})

我已经尝试了查询的各种变化,但总是得到空结果。然而,当我在集合上尝试以下查询时,它可以正常工作。

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

为什么?奇怪的是,复杂的查询可以工作,但是一个简单的通过_id查询却返回空值。

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

谢谢


找到了 - 你需要这样包装它 - find({"_id" => Mongo::ObjectId(params[:id])}) - RedNax
看起来你找到了答案 :) 你应该在下面提交它作为一个“答案”。 - David J.
3个回答

5
我找到了,你需要这样包装它 -
find({"_id" => Mongo::ObjectId(params[:id])}) 

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

2
这也可以起作用: @coll.find_one(ObjectID.from_string(params[:id]))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接