首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BSON::ObjectId vs Mongo::ObjectID

BSON::ObjectId vs Mongo::ObjectID
EN

Stack Overflow用户
提问于 2012-02-22 06:45:49
回答 1查看 4K关注 0票数 3

online API中,他们指的是Mongo::ObjectID

我有require 'mongo',但是ruby还是找不到。例如,我需要根据一个对象的Id来查找它,我正在执行以下操作:

代码语言:javascript
复制
mongo_db['post'].find({_id: Mongo::ObjectID(params[:id])}).next

似乎找不到Mongo::ObjectID,结果是:NoMethodError - undefined method ``ObjectID' for Mongo:Module:

所以过了一段时间后,我开始使用require 'bson'

代码语言:javascript
复制
mongo_db['post'].find({_id: BSON::ObjectId(params[:id])}).next

它成功了!

那么BSON::ObjectId和Mongo::ObjectID有什么区别,我需要做什么才能让后者工作(我真的需要这样做吗)?

附言:我有

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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://github.com/mongodb/mongo-ruby-driver/pull/90

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9386533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档