Как я могу получить документ по _id?
Вопрос
Я пытаюсь получить документ, когда у меня есть идентификатор объекта, однако запрос не работает.
@collection = @db.collection('Mylist')
@result = @collection.find({"_id" => params[:id]})
Я пробовал варианты запроса - он всегда дает пустой результат - однако, когда я пытаюсь выполнить запрос к коллекции, как показано ниже, это сработает.
@result = @collection.find({"Exist" => "True"})
Почему?Странно, что сложные запросы работают, а простой запрос по _id ничего не возвращает.
Если возможно, я не хочу использовать MongoMapper.
Спасибо
Решение
Нашел - нужно завернуть вот так -
find({"_id" => Mongo::ObjectId(params[:id])})
Другие советы
find(:_id => BSON::ObjectID(params[:id])
Это также будет работать:@coll.find_one(ObjectID.from_string(params[:id]))
Не связан с StackOverflow