Превратите MongoDB _id в объект ObjectID, используя Ruby для получения уникальной записи - PullRequest
5 голосов
/ 14 ноября 2011

Я пытаюсь получить документ, хранящийся в MongoDB, используя его _id стандартного типа ObjectID. У меня _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 для генерации правильного объекта, но я не могу заставить его работать. Я также попытался изменить один из _id объекта на стандартный Int32, используя похожий код, и он работал нормально. Я не знаю, как создать правильный объект ObjectID для использования с этим запросом.

Спасибо!

1 Ответ

9 голосов
/ 14 ноября 2011

Вот правильный синтаксис для переноса строки в BSON ObjectID:

collection.find_one({:_id => BSON::ObjectId("4ec064e406a6f1205a000001")})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...