超过X秒接收数据

时间:2018-04-24 08:48:45

标签: ruby-on-rails mongodb mongoid

我在mongodb的一个集合中有两百万个文档。我正在尝试优化我的查询。

我有这样的查询:

Question
.where(
  topic: {'$in': ["stress", "pregnant", "smoking", "cancer", "warts"]},
  _type: 'Question',
  is_closed: true,
  picked_up_by_id: {'$ne': nil},
  is_anonymous: false,
  is_deleted: false
)
.order_by(updated_at: :desc)

Question有子类,所以我在查询中使用_type来指定类的名称(类型)。

我尝试使用hint进行索引,如下所示:

Question
.where(
  topic: {'$in': ["stress", "pregnant", "smoking", "cancer", "warts"]},
  _type: 'Question',
  is_closed: true,
  picked_up_by_id: {'$ne': nil},
  is_anonymous: false,
  is_deleted: false
)
.order_by(updated_at: :desc)
.hint({
  topic: 1,
  _type: 1,
  is_closed: 1,
  picked_up_by_id: 1,
  is_anonymous: 1,
  is_deleted: 1,
  updated_at: -1
})

但我仍然会超时。

0 个答案:

没有答案