如何在GORM子文档字段上进行独特查询?

时间:2014-08-18 22:08:57

标签: hibernate grails gorm-mongodb

鉴于Grails 2.3.8和Mongo 2.6.0以及此(简化)域类:

db.account.findOne()
{
    "name":"Test Account",
    "customer": {
        "state": "CA"
    }
}

其中每个帐户都有一个带有“state”字符串的customer子文档。要获得所有客户的所有州的列表,我认为可以这样做:

def states = Account.createCriteria().list {
    projections{
        distinct("customer.state")
    }
}

但由于现有错误 - https://jira.grails.org/browse/GPMONGODB-397

,它无效

有解决方法吗?

我可以这样做: Account.collection.distinct("customer.state") 但是有更多的Grails-ish方法吗?

1 个答案:

答案 0 :(得分:0)

您可以使用" Criteria.DISTINCT_ROOT_ENTITY"用于DISTINCT记录。

def users = Account..withCriteria {
        resultTransformer Criteria.DISTINCT_ROOT_ENTITY
}