Como posso recuperar um documento por _id?
Pergunta
Eu estou tentando recuperar um documento quando tenho um ID de objeto -. No entanto, a consulta não trabalho
@collection = @db.collection('Mylist')
@result = @collection.find({"_id" => params[:id]})
Eu tentei variações da consulta - sempre produz vazia -. No entanto, quando tento uma consulta sobre a coleção como abaixo, que iria trabalhar
@result = @collection.find({"Exist" => "True"})
Por quê? É estranho que consultas complexas trabalhar, mas uma consulta simples por retornos _id nada.
Se possível, eu não quero usar MongoMapper.
Graças
Solução
Encontrado o - você precisa envolvê-la assim -
find({"_id" => Mongo::ObjectId(params[:id])})
Outras dicas
find(:_id => BSON::ObjectID(params[:id])
Isso também iria trabalhar: @ Coll.find_one (ObjectID.from_string (params [: id]))
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow