문제
객체 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