在online API中,他们指的是Mongo::ObjectID。
我有require 'mongo',但是ruby还是找不到。例如,我需要根据一个对象的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发布于 2012-02-22 19:05:31
这里有两个与Ruby驱动相关的更改。第一个是:
https://jira.mongodb.org/browse/RUBY-158
这将ObjectId移动到了“驼峰壳”版本的ObjectID。从Mongo名称空间到BSON名称空间的转换发生得更早(0.2),请参阅History文件中的最后一个条目:
https://github.com/mongodb/mongo-ruby-driver/blob/master/docs/HISTORY.md
当然,真正的问题是旧的和粗糙的文档,所以我提交了一个拉请求来更新它:
https://stackoverflow.com/questions/9386533
复制相似问题