Comment puis-je récupérer un document par _id?
Question
Je suis en train de récupérer un document quand j'ai un identifiant d'objet -. Cependant, la requête ne fonctionne pas
@collection = @db.collection('Mylist')
@result = @collection.find({"_id" => params[:id]})
J'ai essayé des variations de la requête - elle donne toujours vide -. Mais lorsque je tente une requête sur la collection, comme ci-dessous, qui fonctionnerait
@result = @collection.find({"Exist" => "True"})
Pourquoi? Il est étrange que le travail des requêtes complexes, mais une simple requête par _id ne renvoie rien.
Si possible, je ne veux pas utiliser MongoMapper.
Merci
La solution
Je l'ai trouvé - vous avez besoin de l'envelopper comme ça -
find({"_id" => Mongo::ObjectId(params[:id])})
Autres conseils
find(:_id => BSON::ObjectID(params[:id])
collaborerait également: @ Coll.find_one (ObjectID.from_string (params [: id]))
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow