0

我有一个通过 GORM 访问的 mongoDB 设置,我想搜索一个参数,然后可能 orderBy 另一个参数。这适用于我正在使用的另一个连接到 SQL 表的搜索功能,但 mongoDB 似乎忽略了 order 子句。

def itemList = Item.createCriteria()
def results = itemList.list (max: params.max, offset: params.offset) {
    if(params.searchField.equals("status")){
        eq("status", defaultStatus)
    } else if (!params.searchField.equals("id")) {
        ilike(params.searchField, params.searchString)
    }
    order('species', 'desc')
}

虽然我让我的结果正确返回,但它们没有被排序。

提前致谢!

4

1 回答 1

0

在做了一些研究之后,我发现了一种使用sort{}and对列表进行排序的简单方法sort{}.reverse()

实际答案如下所示:

results = results.sort{
    it."${params.sort}"
}

if (params.order == 'desc') {
    results = results.reverse()
}

谢谢您的帮助。

于 2013-05-28T13:56:22.980 回答