Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 如何使用MongoMapper精确控制查询_Mongodb_Mongomapper - Fatal编程技术网

Mongodb 如何使用MongoMapper精确控制查询

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 =

我的数据库中有一个这样的索引,用于表条目:{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,也就是说,没有索引,如果我对该查询执行一个条件,我可以看到它甚至没有尝试在搜索中对结果进行排序:我猜一旦结果返回,它们就会被排序


有没有一种方法可以更精确地控制查询,以便在此类情况下使用索引?

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

Entry.where(:search_id => 1, :services => 2).order(:created_at.desc)