1

我目前正在使用 Mongoid 与我的 mongodb 数据库通信。我有如下查询:

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

我只对 ID 感兴趣,因为我在后续查询中将它们排除在外。但是,后续查询需要数组中的 ID,所以我必须这样做:

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

这需要很长时间,因为 AFAIK '收集' 循环遍历每个结果。仅循环 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 回答