문제

객체 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]))

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top