【发布时间】:2011-11-14 01:41:26
【问题描述】:
我正在尝试使用标准类型 ObjectID 的 _id 检索存储在 MongoDB 中的文档。我将 _id 表示为字符串。在本例中为“4ec064e406a6f1205a000001”
所以我这样做:
require 'mongo'
connection = Mongo::Connection.new("localhost", 27017).db("store")
collection = connection.collection("products")
id = '4ec064e406a6f1205a000001'
# What should the following line be? This doesn't work.
collection.find_one("_id" => Mongo::ObjectID.from_string(id))
我意识到这是一个 BSON ObjectID,我尝试了一些不同的方法来使用 bson gem 来生成正确的对象,但我无法让它工作。我还尝试使用类似的代码将对象的 _id 之一更改为标准 Int32,并且效果很好。我不知道如何创建正确的 ObjectID 对象以用于此查询。
谢谢!
【问题讨论】:
标签: ruby-on-rails ruby mongodb sinatra nosql