在在线API中,他们提到了
我已经使用了
Mongo::ObjectID
。我已经使用了
require 'mongo'
,但是仍然无法找到它。例如,我需要通过其ID查找对象,我正在执行:mongo_db['post'].find({_id: Mongo::ObjectID(params[:id])}).next
看起来找不到Mongo::ObjectID,导致出现了NoMethodError - undefined method ``ObjectID' for Mongo:Module:
所以经过一些时间后,我开始require 'bson'
并执行
mongo_db['post'].find({_id: BSON::ObjectId(params[:id])}).next
它有效了!
BSON::ObjectId和Mongo::ObjectID有什么区别,我需要做些什么才能使后者起作用(我真的需要吗)?
附注:我已经得到了
bson (1.5.2, 1.4.1)
Authors: Jim Menard, Mike Dirolf, Kyle Banker
Homepage: http://www.mongodb.org
Installed at (1.5.2): /usr/local/lib64/ruby/gems/1.9.1
(1.4.1): /usr/local/lib64/ruby/gems/1.9.1
Ruby implementation of BSON
mongo (1.5.2, 1.4.1)
Authors: Jim Menard, Mike Dirolf, Kyle Banker
Homepage: http://www.mongodb.org
Installed at (1.5.2): /usr/local/lib64/ruby/gems/1.9.1
(1.4.1): /usr/local/lib64/ruby/gems/1.9.1
Ruby driver for the MongoDB
Mongo::ObjectID
是旧版本遗留下来的,没有人更新文档;我只检查了1.5.2和1.3.1,因为这是我手头所有的东西。我在我的MongoDB事务中使用BSON :: ObjectId。 - mu is too short