Вопрос

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

@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]))

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top