Как я могу получить документ по _id? - PullRequest
4 голосов
/ 10 февраля 2010

Я пытаюсь получить документ, когда у меня есть идентификатор объекта - однако запрос не работает.

@collection = @db.collection('Mylist')
@result = @collection.find({"_id" => params[:id]})

Я пробовал варианты запроса - он всегда выдает пустой - однако, когда я пытаюсь выполнить запрос к коллекции, такой как ниже, это будет работать.

@result = @collection.find({"Exist" => "True"}) 

Почему? Странно, что сложные запросы работают, но простой запрос по _id ничего не возвращает.

Если возможно, я не хочу использовать MongoMapper.

Спасибо

Ответы [ 3 ]

5 голосов
/ 24 февраля 2010

Нашел - нужно обернуть так -

find({"_id" => Mongo::ObjectId(params[:id])}) 
3 голосов
/ 31 июля 2010
find(:_id => BSON::ObjectID(params[:id])
2 голосов
/ 20 февраля 2010

Это также будет работать: @ Coll.find_one (ObjectID.from_string (PARAMS [: ID]))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...