0

我的数据库中有一个这样的索引(用于我的表条目):{"created_at": -1, "search_id": 1, "services":1}

如果我像这样在 Mongo 控制台中执行搜索,我可以使用该索引:

 db.entries.find({'search_id':1, 'services':2}).sort({'created_at': 
-1})

(如果我对该查询执行解释(),我可以看到它正在使用索引)。

但是我不能用 MongoMapper 复制这种行为。我试过这样的搜索:

Entry.where(:search_id => 1, :services => 2).order(['created_at', 
'descending'])

我已经更改了顺序并尝试了一切,但是当我对其进行解释时,我发现它使用的是 BasicCursor (即没有索引),如果我对该查询执行“条件”,我可以看到它甚至不是尝试在搜索中对结果进行排序:我想一旦结果返回,它们就会被排序。

有没有办法更精确地控制查询,以便在这种情况下使用索引?

4

1 回答 1

0

我的坏人,我order错误地使用了这个函数,因为这次它需要一个符号而不是一个数组:

Entry.where(:search_id => 1, :services => 2).order(:created_at.desc)
于 2010-10-25T10:49:41.813 回答