4

オブジェクトIDがあるときにドキュメントを取得しようとしていますが、クエリが機能しません。

@collection = @db.collection('Mylist')
@result = @collection.find({"_id" => params[:id]})

クエリのバリエーションを試しましたが、常に空になりますが、以下のようなコレクションでクエリを実行すると、うまくいきます。

@result = @collection.find({"Exist" => "True"}) 

なんで?複雑なクエリが機能するのは奇妙ですが、_idによる単純なクエリは何も返しません。

可能であれば、MongoMapperは使いたくありません。

ありがとう

4

3 に答える 3

5

見つかりました-このようにラップする必要があります-

find({"_id" => Mongo::ObjectId(params[:id])}) 
于 2010-02-24T02:04:14.883 に答える
3
find(:_id => BSON::ObjectID(params[:id])
于 2010-07-31T18:53:18.980 に答える
2

これも機能します:@ coll.find_one(ObjectID.from_string(params [:id]))

于 2010-02-19T23:19:50.867 に答える