我在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
})
但我仍然会超时。