1

为了使用 MongoID/Rails 3查找包含嵌入文档的根文档,我需要以这种方式进行查询:

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

有没有办法在不使用 BSON::ObjectID 的情况下进行查询?

谢谢!

4

2 回答 2

0

这是一个错误,ID 应该由 Mongoid 自动转换。你应该在 github 上开一张票:http: //github.com/mongoid/mongoid/issues

于 2010-09-24T15:22:50.917 回答
0

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

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

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

您必须从字符串创建一个实际的 ObjectID 才能获得结果:

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

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

于 2010-08-31T07:07:41.083 回答