2010-08-30 25 views
1

获取Mongoid为了找到包含使用MongoID/Rails 3中,我需要做我查询这种方式嵌入文档根文件:从参数数组

QuoteRequest.where("order_request_items._id" => BSON::ObjectID(params[:id])).first 

有没有办法查询,而不使用BSON :: ObjectID?

谢谢!

回答

0

我不是MongoID/Rails用户,但我的猜测是你不能。

即使在Mongo shell中,如果要比较ObjectID,您也必须使用ObjectId()。这样的事情将不会返回任何结果:

db.foo.find({_id: "4c7ca651db48000000002277"}) 

你必须为了得到结果,以创建从字符串的实际对象ID:

db.foo.find({_id: ObjectId("4c7ca651db48000000002277")}) 

MongoID显然不会自动转换输入到ObjectIDs。但也许有一种方法可以告诉MongoID哪些字段应该始终转换为ObjectIDs?那么你就可以省略使用BSON::ObjectID

+0

我在想MongoID应该自动将ID转换成ObjectID。在做Model.find(“4c7ca651db48000000002277”)时,Rails会这样做,但在进行条件搜索时需要使用BSON :: ObjectID(params [:id])。 – 2010-08-31 14:07:37