gpt4 book ai didi

ruby - BSON::ObjectId 与 Mongo::ObjectID

转载 作者:可可西里 更新时间:2023-11-01 09:46:26 27 4
gpt4 key购买 nike

online API他们指的是 Mongo::ObjectID

我有 require 'mongo' 但 ruby​​ 仍然找不到它。例如,我需要通过它的 Id 找到一个对象,我正在做:

mongo_db['post'].find({_id: Mongo::ObjectID(params[:id])}).next

它似乎找不到 Mongo::ObjectID 并导致:NoMethodError - Mongo:Module 的未定义方法“ObjectID”:

所以一段时间后我开始要求'bson'并做

mongo_db['post'].find({_id: BSON::ObjectId(params[:id])}).next

成功了!

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

PS:我有

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

最佳答案

与此处相关的 Ruby 驱动程序有两个更改。第一个是:

https://jira.mongodb.org/browse/RUBY-158

将 ObjectID 移动到“驼峰式”版本的 ObjectId。从 Mongo 命名空间到 BSON 命名空间的切换发生得更早 (0.2),请在此处查看历史文件中的最后一个条目:

https://github.com/mongodb/mongo-ruby-driver/blob/master/docs/HISTORY.md

当然,真正的问题是旧的和粗糙的文档,所以我提交了一个 pull request 来更新它:

https://github.com/mongodb/mongo-ruby-driver/pull/90

关于ruby - BSON::ObjectId 与 Mongo::ObjectID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9386533/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com