1

指定されたフィールドが欠落している埋め込みオブジェクトが少なくとも 1 つある Mongo コレクションのすべてのドキュメントを効率的に検索する方法はありますか?

私はしようとしています:

Response.where('answers.question_id' => nil)

ただし、これは、question_id がない回答を少なくとも 1 つ含む応答ではなく、すべての回答に question_id がない応答のみを返します。

それぞれの応答テストをループすることもできますが、これは私が使用しているデータベースのサイズに対して非常に遅いため、応答リストを絞り込むためのクエリを作成する方法を見つけたいと思っています。

編集:

Response.where(:'answers.question_id'.exists => false)

それでも私の問題は解決しません -すべての埋め込まれた回答に question_id がない回答のみが検索され、埋め込まれた回答に question_id がない回答は検索されません。

4

1 に答える 1

1

次のいずれかを試しましたか?

Response.where(:answers => { "$elemMatch" => { :"answer_id".exists => false }})
Response.where(:answers.elem_match => { :answer_id.exists => false})
于 2013-06-07T09:33:07.560 に答える