4

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

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

我已经尝试过查询的变体——它总是产生空的——但是当我尝试对集合进行查询时,如下所示,它会起作用。

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

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

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

谢谢

4

3 回答 3

5

找到了——你需要像这样包装它——

find({"_id" => Mongo::ObjectId(params[:id])}) 
于 2010-02-24T02:04:14.883 回答
3
find(:_id => BSON::ObjectID(params[:id])
于 2010-07-31T18:53:18.980 回答
2

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

于 2010-02-19T23:19:50.867 回答