1

現在、mongoid を使用して mongodb データベースと通信しています。次のようなクエリがあります。

ClassDoc.only(:class_id).where(:recurrs => true)

後続のクエリで ID を除外するため、ID のみに関心があります。ただし、後続のクエリには配列内の ID が必要なので、これを行う必要があります。

first_result_ids = ClassDoc.only(:class_id).where(:recurrs => true).collect { |class| class.class_id }

AFAIK 'collect' がすべての結果をループするため、これにはかなりの時間がかかります。わずか 1000 件の結果をループするのに最大 10 秒かかる場合があります。

ID を配列に直接取り出す方法はありますか?

4

1 に答える 1

1

これを試して

first_result_ids = ClassDoc.only(:class_id).where(:recurrs => true).map(&:class_id)
于 2012-12-05T15:16:06.110 に答える