Mongodb 如何使用MongoMapper精确控制查询
我的数据库中有一个这样的索引,用于表条目:{created_at:-1,search_id:1,services:1} 如果我在Mongo控制台中执行如下搜索,我可以使用该索引:Mongodb 如何使用MongoMapper精确控制查询,mongodb,mongomapper,Mongodb,Mongomapper,我的数据库中有一个这样的索引,用于表条目:{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 =
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,也就是说,没有索引,如果我对该查询执行一个条件,我可以看到它甚至没有尝试在搜索中对结果进行排序:我猜一旦结果返回,它们就会被排序
有没有一种方法可以更精确地控制查询,以便在此类情况下使用索引?我的坏蛋,我错误地使用了order函数,因为这次它需要的是符号而不是数组:
Entry.where(:search_id => 1, :services => 2).order(:created_at.desc)