获取Mongoid为了找到包含使用MongoID/Rails 3中,我需要做我查询这种方式嵌入文档根文件:从参数数组
QuoteRequest.where("order_request_items._id" => BSON::ObjectID(params[:id])).first
有没有办法查询,而不使用BSON :: ObjectID?
谢谢!
获取Mongoid为了找到包含使用MongoID/Rails 3中,我需要做我查询这种方式嵌入文档根文件:从参数数组
QuoteRequest.where("order_request_items._id" => BSON::ObjectID(params[:id])).first
有没有办法查询,而不使用BSON :: ObjectID?
谢谢!
我不是MongoID/Rails用户,但我的猜测是你不能。
即使在Mongo shell中,如果要比较ObjectID,您也必须使用ObjectId()
。这样的事情将不会返回任何结果:
db.foo.find({_id: "4c7ca651db48000000002277"})
你必须为了得到结果,以创建从字符串的实际对象ID:
db.foo.find({_id: ObjectId("4c7ca651db48000000002277")})
MongoID显然不会自动转换输入到ObjectIDs。但也许有一种方法可以告诉MongoID哪些字段应该始终转换为ObjectIDs?那么你就可以省略使用BSON::ObjectID
。
这是一个bug,id应该由Mongoid自动转换。你应该在github上打开票:http://github.com/mongoid/mongoid/issues
我在想MongoID应该自动将ID转换成ObjectID。在做Model.find(“4c7ca651db48000000002277”)时,Rails会这样做,但在进行条件搜索时需要使用BSON :: ObjectID(params [:id])。 – 2010-08-31 14:07:37