獲取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